* [Buildroot] [PATCH] package/util-linux: fix build with old glibc
@ 2023-09-04 12:45 Norbert Lange
2023-09-04 12:48 ` Norbert Lange
0 siblings, 1 reply; 5+ messages in thread
From: Norbert Lange @ 2023-09-04 12:45 UTC (permalink / raw)
To: buildroot; +Cc: Norbert Lange
The build still fails with older glibc versions (2.28 for example).
Apply an upstream fix from
https://github.com/util-linux/util-linux/issues/2448.
Signed-off-by: Norbert Lange <nolange79@gmail.com>
---
.../0001-libmount-fix-statx-includes.patch | 127 ++++++++++++++++++
.../0001-libmount-fix-statx-includes.patch | 1 +
2 files changed, 128 insertions(+)
create mode 100644 package/util-linux/0001-libmount-fix-statx-includes.patch
create mode 120000 package/util-linux/util-linux-libs/0001-libmount-fix-statx-includes.patch
diff --git a/package/util-linux/0001-libmount-fix-statx-includes.patch b/package/util-linux/0001-libmount-fix-statx-includes.patch
new file mode 100644
index 0000000000..c818423769
--- /dev/null
+++ b/package/util-linux/0001-libmount-fix-statx-includes.patch
@@ -0,0 +1,127 @@
+From 7d679f29aee9f56b07bd792e07b5b4e1ca2f3fa7 Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak@redhat.com>
+Date: Wed, 23 Aug 2023 11:50:37 +0200
+Subject: [PATCH] libmount: fix statx() includes
+
+Using sys/stat.h and linux/stat is too tricky.h together. It seems
+better to rely on libc and use sys/stat.h only. Users affected
+by old libc must update to use recent util-linux.
+
+Fixes: https://github.com/util-linux/util-linux/issues/2448
+Signed-off-by: Karel Zak <kzak@redhat.com>
+Signed-off-by: Norbert Lange <nolange79@gmail.com>
+---
+ configure.ac | 5 ++---
+ include/fileutils.h | 4 ++--
+ libmount/src/hook_mount.c | 2 +-
+ libmount/src/utils.c | 2 +-
+ meson.build | 5 ++---
+ 5 files changed, 8 insertions(+), 10 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 738b369ee8..e6114aac36 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -326,7 +326,6 @@ AC_CHECK_HEADERS([ \
+ linux/nsfs.h \
+ linux/pr.h \
+ linux/raw.h \
+- linux/stat.h \
+ linux/securebits.h \
+ linux/tiocl.h \
+ linux/version.h \
+@@ -518,7 +517,6 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ ])
+
+ AC_CHECK_TYPES([struct mount_attr], [], [], [[#include <linux/mount.h>]])
+-AC_CHECK_TYPES([struct statx], [], [], [[#include <linux/stat.h>]])
+ AC_CHECK_TYPES([enum fsconfig_command], [], [], [[#include <linux/mount.h>]])
+
+ AC_CHECK_MEMBERS([struct termios.c_line],,,
+@@ -527,8 +525,9 @@ AC_CHECK_MEMBERS([struct termios.c_line],,,
+ AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
+ [[#include <sys/stat.h>]])
+
++AC_CHECK_TYPES([struct statx], [], [], [[#include <sys/stat.h>]])
+ AC_CHECK_MEMBERS([struct statx.stx_mnt_id],,,
+- [[#include <linux/stat.h>]])
++ [[#include <sys/stat.h>]])
+
+ AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
+
+diff --git a/include/fileutils.h b/include/fileutils.h
+index a5fe517266..538eab0b74 100644
+--- a/include/fileutils.h
++++ b/include/fileutils.h
+@@ -94,13 +94,13 @@ static inline int close_range(unsigned int first, unsigned int last, int flags)
+ # define HAVE_CLOSE_RANGE 1
+ # endif /* SYS_close_range */
+
+-# if !defined(HAVE_STATX) && defined(HAVE_STRUCT_STATX) && defined(SYS_statx) && defined(HAVE_LINUX_STAT_H)
+-# include <linux/stat.h>
++# if !defined(HAVE_STATX) && defined(HAVE_STRUCT_STATX) && defined(SYS_statx)
+ static inline int statx(int fd, const char *restrict path, int flags,
+ unsigned int mask, struct statx *stx)
+ {
+ return syscall(SYS_statx, fd, path, flags, mask, stx);
+ }
++# define HAVE_STATX 1
+ # endif /* SYS_statx */
+
+ #endif /* HAVE_SYS_SYSCALL_H */
+diff --git a/libmount/src/hook_mount.c b/libmount/src/hook_mount.c
+index 056338c491..0ebb829985 100644
+--- a/libmount/src/hook_mount.c
++++ b/libmount/src/hook_mount.c
+@@ -294,7 +294,7 @@ static int hook_create_mount(struct libmnt_context *cxt,
+ /* cleanup after fail (libmount may only try the FS type) */
+ close_sysapi_fds(api);
+
+-#if defined(HAVE_STRUCT_STATX) && defined(HAVE_STRUCT_STATX_STX_MNT_ID)
++#if defined(HAVE_STATX) && defined(HAVE_STRUCT_STATX) && defined(HAVE_STRUCT_STATX_STX_MNT_ID)
+ if (!rc && cxt->fs) {
+ struct statx st;
+
+diff --git a/libmount/src/utils.c b/libmount/src/utils.c
+index 1d3f4abcec..3817b39271 100644
+--- a/libmount/src/utils.c
++++ b/libmount/src/utils.c
+@@ -111,7 +111,7 @@ static int safe_stat(const char *target, struct stat *st, int nofollow)
+
+ memset(st, 0, sizeof(struct stat));
+
+-#if defined(AT_STATX_DONT_SYNC) && defined (HAVE_STRUCT_STATX)
++#if defined(HAVE_STATX) && defined(HAVE_STRUCT_STATX) && defined(AT_STATX_DONT_SYNC)
+ {
+ int rc;
+ struct statx stx = { 0 };
+diff --git a/meson.build b/meson.build
+index 221ae373b6..6beb9dbaba 100644
+--- a/meson.build
++++ b/meson.build
+@@ -79,7 +79,7 @@ have_mountfd_api = cc.sizeof('struct mount_attr', prefix : '#include <linux/moun
+ conf.set('HAVE_STRUCT_MOUNT_ATTR', have_mountfd_api ? 1 : false)
+ conf.set('HAVE_MOUNTFD_API', have_mountfd_api ? 1 : false)
+
+-have_struct_statx = cc.sizeof('struct statx', prefix : '#include <linux/stat.h>') > 0
++have_struct_statx = cc.sizeof('struct statx', prefix : '#include <sys/stat.h>') > 0
+ conf.set('HAVE_STRUCT_STATX', have_struct_statx ? 1 : false)
+
+ build_libmount = not get_option('build-libmount').disabled()
+@@ -177,7 +177,6 @@ headers = '''
+ linux/nsfs.h
+ linux/mount.h
+ linux/pr.h
+- linux/stat.h
+ linux/securebits.h
+ linux/tiocl.h
+ linux/version.h
+@@ -640,7 +639,7 @@ have = cc.has_member('struct stat', 'st_mtim.tv_nsec',
+ conf.set('HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC', have ? 1 : false)
+
+ have = cc.has_member('struct statx', 'stx_mnt_id',
+- prefix : '#include <linux/stat.h>')
++ prefix : '#include <sys/stat.h>')
+ conf.set('HAVE_STRUCT_STATX_STX_MNT_ID', have ? 1 : false)
+
+ # replacement for AC_STRUCT_TIMEZONE
diff --git a/package/util-linux/util-linux-libs/0001-libmount-fix-statx-includes.patch b/package/util-linux/util-linux-libs/0001-libmount-fix-statx-includes.patch
new file mode 120000
index 0000000000..bc21ebedb7
--- /dev/null
+++ b/package/util-linux/util-linux-libs/0001-libmount-fix-statx-includes.patch
@@ -0,0 +1 @@
+../0001-libmount-fix-statx-includes.patch
\ No newline at end of file
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Buildroot] [PATCH] package/util-linux: fix build with old glibc
2023-09-04 12:45 [Buildroot] [PATCH] package/util-linux: fix build with old glibc Norbert Lange
@ 2023-09-04 12:48 ` Norbert Lange
2023-09-06 17:24 ` Peter Korsgaard
0 siblings, 1 reply; 5+ messages in thread
From: Norbert Lange @ 2023-09-04 12:48 UTC (permalink / raw)
To: buildroot
Am Mo., 4. Sept. 2023 um 14:46 Uhr schrieb Norbert Lange <nolange79@gmail.com>:
>
> The build still fails with older glibc versions (2.28 for example).
> Apply an upstream fix from
> https://github.com/util-linux/util-linux/issues/2448.
>
> Signed-off-by: Norbert Lange <nolange79@gmail.com>
> ---
> .../0001-libmount-fix-statx-includes.patch | 127 ++++++++++++++++++
> .../0001-libmount-fix-statx-includes.patch | 1 +
> 2 files changed, 128 insertions(+)
> create mode 100644 package/util-linux/0001-libmount-fix-statx-includes.patch
> create mode 120000 package/util-linux/util-linux-libs/0001-libmount-fix-statx-includes.patch
>
> diff --git a/package/util-linux/0001-libmount-fix-statx-includes.patch b/package/util-linux/0001-libmount-fix-statx-includes.patch
> new file mode 100644
> index 0000000000..c818423769
> --- /dev/null
> +++ b/package/util-linux/0001-libmount-fix-statx-includes.patch
> @@ -0,0 +1,127 @@
> +From 7d679f29aee9f56b07bd792e07b5b4e1ca2f3fa7 Mon Sep 17 00:00:00 2001
> +From: Karel Zak <kzak@redhat.com>
> +Date: Wed, 23 Aug 2023 11:50:37 +0200
> +Subject: [PATCH] libmount: fix statx() includes
> +
> +Using sys/stat.h and linux/stat is too tricky.h together. It seems
> +better to rely on libc and use sys/stat.h only. Users affected
> +by old libc must update to use recent util-linux.
> +
> +Fixes: https://github.com/util-linux/util-linux/issues/2448
> +Signed-off-by: Karel Zak <kzak@redhat.com>
> +Signed-off-by: Norbert Lange <nolange79@gmail.com>
> +---
> + configure.ac | 5 ++---
> + include/fileutils.h | 4 ++--
> + libmount/src/hook_mount.c | 2 +-
> + libmount/src/utils.c | 2 +-
> + meson.build | 5 ++---
> + 5 files changed, 8 insertions(+), 10 deletions(-)
> +
> +diff --git a/configure.ac b/configure.ac
> +index 738b369ee8..e6114aac36 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -326,7 +326,6 @@ AC_CHECK_HEADERS([ \
> + linux/nsfs.h \
> + linux/pr.h \
> + linux/raw.h \
> +- linux/stat.h \
> + linux/securebits.h \
> + linux/tiocl.h \
> + linux/version.h \
> +@@ -518,7 +517,6 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
> + ])
> +
> + AC_CHECK_TYPES([struct mount_attr], [], [], [[#include <linux/mount.h>]])
> +-AC_CHECK_TYPES([struct statx], [], [], [[#include <linux/stat.h>]])
> + AC_CHECK_TYPES([enum fsconfig_command], [], [], [[#include <linux/mount.h>]])
> +
> + AC_CHECK_MEMBERS([struct termios.c_line],,,
> +@@ -527,8 +525,9 @@ AC_CHECK_MEMBERS([struct termios.c_line],,,
> + AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
> + [[#include <sys/stat.h>]])
> +
> ++AC_CHECK_TYPES([struct statx], [], [], [[#include <sys/stat.h>]])
> + AC_CHECK_MEMBERS([struct statx.stx_mnt_id],,,
> +- [[#include <linux/stat.h>]])
> ++ [[#include <sys/stat.h>]])
> +
> + AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
> +
> +diff --git a/include/fileutils.h b/include/fileutils.h
> +index a5fe517266..538eab0b74 100644
> +--- a/include/fileutils.h
> ++++ b/include/fileutils.h
> +@@ -94,13 +94,13 @@ static inline int close_range(unsigned int first, unsigned int last, int flags)
> + # define HAVE_CLOSE_RANGE 1
> + # endif /* SYS_close_range */
> +
> +-# if !defined(HAVE_STATX) && defined(HAVE_STRUCT_STATX) && defined(SYS_statx) && defined(HAVE_LINUX_STAT_H)
> +-# include <linux/stat.h>
> ++# if !defined(HAVE_STATX) && defined(HAVE_STRUCT_STATX) && defined(SYS_statx)
> + static inline int statx(int fd, const char *restrict path, int flags,
> + unsigned int mask, struct statx *stx)
> + {
> + return syscall(SYS_statx, fd, path, flags, mask, stx);
> + }
> ++# define HAVE_STATX 1
> + # endif /* SYS_statx */
> +
> + #endif /* HAVE_SYS_SYSCALL_H */
> +diff --git a/libmount/src/hook_mount.c b/libmount/src/hook_mount.c
> +index 056338c491..0ebb829985 100644
> +--- a/libmount/src/hook_mount.c
> ++++ b/libmount/src/hook_mount.c
> +@@ -294,7 +294,7 @@ static int hook_create_mount(struct libmnt_context *cxt,
> + /* cleanup after fail (libmount may only try the FS type) */
> + close_sysapi_fds(api);
> +
> +-#if defined(HAVE_STRUCT_STATX) && defined(HAVE_STRUCT_STATX_STX_MNT_ID)
> ++#if defined(HAVE_STATX) && defined(HAVE_STRUCT_STATX) && defined(HAVE_STRUCT_STATX_STX_MNT_ID)
> + if (!rc && cxt->fs) {
> + struct statx st;
> +
> +diff --git a/libmount/src/utils.c b/libmount/src/utils.c
> +index 1d3f4abcec..3817b39271 100644
> +--- a/libmount/src/utils.c
> ++++ b/libmount/src/utils.c
> +@@ -111,7 +111,7 @@ static int safe_stat(const char *target, struct stat *st, int nofollow)
> +
> + memset(st, 0, sizeof(struct stat));
> +
> +-#if defined(AT_STATX_DONT_SYNC) && defined (HAVE_STRUCT_STATX)
> ++#if defined(HAVE_STATX) && defined(HAVE_STRUCT_STATX) && defined(AT_STATX_DONT_SYNC)
> + {
> + int rc;
> + struct statx stx = { 0 };
> +diff --git a/meson.build b/meson.build
> +index 221ae373b6..6beb9dbaba 100644
> +--- a/meson.build
> ++++ b/meson.build
> +@@ -79,7 +79,7 @@ have_mountfd_api = cc.sizeof('struct mount_attr', prefix : '#include <linux/moun
> + conf.set('HAVE_STRUCT_MOUNT_ATTR', have_mountfd_api ? 1 : false)
> + conf.set('HAVE_MOUNTFD_API', have_mountfd_api ? 1 : false)
> +
> +-have_struct_statx = cc.sizeof('struct statx', prefix : '#include <linux/stat.h>') > 0
> ++have_struct_statx = cc.sizeof('struct statx', prefix : '#include <sys/stat.h>') > 0
> + conf.set('HAVE_STRUCT_STATX', have_struct_statx ? 1 : false)
> +
> + build_libmount = not get_option('build-libmount').disabled()
> +@@ -177,7 +177,6 @@ headers = '''
> + linux/nsfs.h
> + linux/mount.h
> + linux/pr.h
> +- linux/stat.h
> + linux/securebits.h
> + linux/tiocl.h
> + linux/version.h
> +@@ -640,7 +639,7 @@ have = cc.has_member('struct stat', 'st_mtim.tv_nsec',
> + conf.set('HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC', have ? 1 : false)
> +
> + have = cc.has_member('struct statx', 'stx_mnt_id',
> +- prefix : '#include <linux/stat.h>')
> ++ prefix : '#include <sys/stat.h>')
> + conf.set('HAVE_STRUCT_STATX_STX_MNT_ID', have ? 1 : false)
> +
> + # replacement for AC_STRUCT_TIMEZONE
> diff --git a/package/util-linux/util-linux-libs/0001-libmount-fix-statx-includes.patch b/package/util-linux/util-linux-libs/0001-libmount-fix-statx-includes.patch
> new file mode 120000
> index 0000000000..bc21ebedb7
> --- /dev/null
> +++ b/package/util-linux/util-linux-libs/0001-libmount-fix-statx-includes.patch
> @@ -0,0 +1 @@
> +../0001-libmount-fix-statx-includes.patch
> \ No newline at end of file
> --
> 2.39.2
>
I think this, together with the version bugfix bump to 2.39.2 should
end up in BR 2023.08.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Buildroot] [PATCH] package/util-linux: fix build with old glibc
2023-09-04 12:48 ` Norbert Lange
@ 2023-09-06 17:24 ` Peter Korsgaard
2023-09-06 19:17 ` Peter Korsgaard
0 siblings, 1 reply; 5+ messages in thread
From: Peter Korsgaard @ 2023-09-06 17:24 UTC (permalink / raw)
To: Norbert Lange; +Cc: buildroot
>>>>> "Norbert" == Norbert Lange <nolange79@gmail.com> writes:
> Am Mo., 4. Sept. 2023 um 14:46 Uhr schrieb Norbert Lange <nolange79@gmail.com>:
>>
>> The build still fails with older glibc versions (2.28 for example).
>> Apply an upstream fix from
>> https://github.com/util-linux/util-linux/issues/2448.
>>
>> Signed-off-by: Norbert Lange <nolange79@gmail.com>
>> ---
>> .../0001-libmount-fix-statx-includes.patch | 127 ++++++++++++++++++
>> .../0001-libmount-fix-statx-includes.patch | 1 +
>> 2 files changed, 128 insertions(+)
>> create mode 100644 package/util-linux/0001-libmount-fix-statx-includes.patch
>> create mode 120000 package/util-linux/util-linux-libs/0001-libmount-fix-statx-includes.patch
>>
>> diff --git
>> a/package/util-linux/0001-libmount-fix-statx-includes.patch
>> b/package/util-linux/0001-libmount-fix-statx-includes.patch
>> new file mode 100644
>> index 0000000000..c818423769
>> --- /dev/null
>> +++ b/package/util-linux/0001-libmount-fix-statx-includes.patch
>> @@ -0,0 +1,127 @@
>> +From 7d679f29aee9f56b07bd792e07b5b4e1ca2f3fa7 Mon Sep 17 00:00:00 2001
>> +From: Karel Zak <kzak@redhat.com>
>> +Date: Wed, 23 Aug 2023 11:50:37 +0200
>> +Subject: [PATCH] libmount: fix statx() includes
>> +
>> +Using sys/stat.h and linux/stat is too tricky.h together. It seems
>> +better to rely on libc and use sys/stat.h only. Users affected
>> +by old libc must update to use recent util-linux.
>> +
>> +Fixes: https://github.com/util-linux/util-linux/issues/2448
>> +Signed-off-by: Karel Zak <kzak@redhat.com>
>> +Signed-off-by: Norbert Lange <nolange79@gmail.com>
>> +---
>> + configure.ac | 5 ++---
>> + include/fileutils.h | 4 ++--
>> + libmount/src/hook_mount.c | 2 +-
>> + libmount/src/utils.c | 2 +-
>> + meson.build | 5 ++---
>> + 5 files changed, 8 insertions(+), 10 deletions(-)
>> +
>> +diff --git a/configure.ac b/configure.ac
>> +index 738b369ee8..e6114aac36 100644
>> +--- a/configure.ac
>> ++++ b/configure.ac
>> +@@ -326,7 +326,6 @@ AC_CHECK_HEADERS([ \
>> + linux/nsfs.h \
>> + linux/pr.h \
>> + linux/raw.h \
>> +- linux/stat.h \
>> + linux/securebits.h \
>> + linux/tiocl.h \
>> + linux/version.h \
>> +@@ -518,7 +517,6 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
>> + ])
>> +
>> + AC_CHECK_TYPES([struct mount_attr], [], [], [[#include <linux/mount.h>]])
>> +-AC_CHECK_TYPES([struct statx], [], [], [[#include <linux/stat.h>]])
>> + AC_CHECK_TYPES([enum fsconfig_command], [], [], [[#include <linux/mount.h>]])
>> +
>> + AC_CHECK_MEMBERS([struct termios.c_line],,,
>> +@@ -527,8 +525,9 @@ AC_CHECK_MEMBERS([struct termios.c_line],,,
>> + AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
>> + [[#include <sys/stat.h>]])
>> +
>> ++AC_CHECK_TYPES([struct statx], [], [], [[#include <sys/stat.h>]])
>> + AC_CHECK_MEMBERS([struct statx.stx_mnt_id],,,
>> +- [[#include <linux/stat.h>]])
>> ++ [[#include <sys/stat.h>]])
>> +
>> + AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
>> +
>> +diff --git a/include/fileutils.h b/include/fileutils.h
>> +index a5fe517266..538eab0b74 100644
>> +--- a/include/fileutils.h
>> ++++ b/include/fileutils.h
>> +@@ -94,13 +94,13 @@ static inline int close_range(unsigned int first, unsigned int last, int flags)
>> + # define HAVE_CLOSE_RANGE 1
>> + # endif /* SYS_close_range */
>> +
>> +-# if !defined(HAVE_STATX) && defined(HAVE_STRUCT_STATX) && defined(SYS_statx) && defined(HAVE_LINUX_STAT_H)
>> +-# include <linux/stat.h>
>> ++# if !defined(HAVE_STATX) && defined(HAVE_STRUCT_STATX) && defined(SYS_statx)
>> + static inline int statx(int fd, const char *restrict path, int flags,
>> + unsigned int mask, struct statx *stx)
>> + {
>> + return syscall(SYS_statx, fd, path, flags, mask, stx);
>> + }
>> ++# define HAVE_STATX 1
>> + # endif /* SYS_statx */
>> +
>> + #endif /* HAVE_SYS_SYSCALL_H */
>> +diff --git a/libmount/src/hook_mount.c b/libmount/src/hook_mount.c
>> +index 056338c491..0ebb829985 100644
>> +--- a/libmount/src/hook_mount.c
>> ++++ b/libmount/src/hook_mount.c
>> +@@ -294,7 +294,7 @@ static int hook_create_mount(struct libmnt_context *cxt,
>> + /* cleanup after fail (libmount may only try the FS type) */
>> + close_sysapi_fds(api);
>> +
>> +-#if defined(HAVE_STRUCT_STATX) && defined(HAVE_STRUCT_STATX_STX_MNT_ID)
>> ++#if defined(HAVE_STATX) && defined(HAVE_STRUCT_STATX) && defined(HAVE_STRUCT_STATX_STX_MNT_ID)
>> + if (!rc && cxt->fs) {
>> + struct statx st;
>> +
>> +diff --git a/libmount/src/utils.c b/libmount/src/utils.c
>> +index 1d3f4abcec..3817b39271 100644
>> +--- a/libmount/src/utils.c
>> ++++ b/libmount/src/utils.c
>> +@@ -111,7 +111,7 @@ static int safe_stat(const char *target, struct stat *st, int nofollow)
>> +
>> + memset(st, 0, sizeof(struct stat));
>> +
>> +-#if defined(AT_STATX_DONT_SYNC) && defined (HAVE_STRUCT_STATX)
>> ++#if defined(HAVE_STATX) && defined(HAVE_STRUCT_STATX) && defined(AT_STATX_DONT_SYNC)
>> + {
>> + int rc;
>> + struct statx stx = { 0 };
>> +diff --git a/meson.build b/meson.build
>> +index 221ae373b6..6beb9dbaba 100644
>> +--- a/meson.build
>> ++++ b/meson.build
>> +@@ -79,7 +79,7 @@ have_mountfd_api = cc.sizeof('struct mount_attr', prefix : '#include <linux/moun
>> + conf.set('HAVE_STRUCT_MOUNT_ATTR', have_mountfd_api ? 1 : false)
>> + conf.set('HAVE_MOUNTFD_API', have_mountfd_api ? 1 : false)
>> +
>> +-have_struct_statx = cc.sizeof('struct statx', prefix : '#include <linux/stat.h>') > 0
>> ++have_struct_statx = cc.sizeof('struct statx', prefix : '#include <sys/stat.h>') > 0
>> + conf.set('HAVE_STRUCT_STATX', have_struct_statx ? 1 : false)
>> +
>> + build_libmount = not get_option('build-libmount').disabled()
>> +@@ -177,7 +177,6 @@ headers = '''
>> + linux/nsfs.h
>> + linux/mount.h
>> + linux/pr.h
>> +- linux/stat.h
>> + linux/securebits.h
>> + linux/tiocl.h
>> + linux/version.h
>> +@@ -640,7 +639,7 @@ have = cc.has_member('struct stat', 'st_mtim.tv_nsec',
>> + conf.set('HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC', have ? 1 : false)
>> +
>> + have = cc.has_member('struct statx', 'stx_mnt_id',
>> +- prefix : '#include <linux/stat.h>')
>> ++ prefix : '#include <sys/stat.h>')
>> + conf.set('HAVE_STRUCT_STATX_STX_MNT_ID', have ? 1 : false)
>> +
>> + # replacement for AC_STRUCT_TIMEZONE
>> diff --git
>> a/package/util-linux/util-linux-libs/0001-libmount-fix-statx-includes.patch
>> b/package/util-linux/util-linux-libs/0001-libmount-fix-statx-includes.patch
>> new file mode 120000
>> index 0000000000..bc21ebedb7
>> --- /dev/null
>> +++ b/package/util-linux/util-linux-libs/0001-libmount-fix-statx-includes.patch
>> @@ -0,0 +1 @@
>> +../0001-libmount-fix-statx-includes.patch
>> \ No newline at end of file
>> --
>> 2.39.2
>>
> I think this, together with the version bugfix bump to 2.39.2 should
> end up in BR 2023.08.
Can you give some more details about why? Is this a fix for a new issue
in 2.39.2 or already in 2.39.1? What is the relation between this and
commit 898bdbca1f11f (package/util-linux: fix compile issue with older
kernel headers)?
--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Buildroot] [PATCH] package/util-linux: fix build with old glibc
2023-09-06 17:24 ` Peter Korsgaard
@ 2023-09-06 19:17 ` Peter Korsgaard
2023-09-06 20:12 ` Norbert Lange
0 siblings, 1 reply; 5+ messages in thread
From: Peter Korsgaard @ 2023-09-06 19:17 UTC (permalink / raw)
To: Norbert Lange; +Cc: buildroot
>>>>> "Peter" == Peter Korsgaard <peter@korsgaard.com> writes:
Hi,
>> I think this, together with the version bugfix bump to 2.39.2 should
>> end up in BR 2023.08.
> Can you give some more details about why? Is this a fix for a new issue
> in 2.39.2 or already in 2.39.1? What is the relation between this and
> commit 898bdbca1f11f (package/util-linux: fix compile issue with older
> kernel headers)?
Apparently not in 2.39.1?
>>> util-linux 2.39.1 Patching
Applying 0001-libmount-fix-statx-includes.patch using patch:
patching file configure.ac
Hunk #1 succeeded at 315 (offset -11 lines).
Hunk #2 FAILED at 517.
Hunk #3 FAILED at 526.
2 out of 3 hunks FAILED -- saving rejects to file configure.ac.rej
patching file include/fileutils.h
Hunk #1 FAILED at 94.
1 out of 1 hunk FAILED -- saving rejects to file include/fileutils.h.rej
patching file libmount/src/hook_mount.c
Hunk #1 FAILED at 294.
1 out of 1 hunk FAILED -- saving rejects to file libmount/src/hook_mount.c.rej
patching file libmount/src/utils.c
Hunk #1 FAILED at 111.
1 out of 1 hunk FAILED -- saving rejects to file libmount/src/utils.c.rej
patching file meson.build
Hunk #1 FAILED at 79.
Hunk #2 succeeded at 175 with fuzz 2 (offset -2 lines).
Hunk #3 FAILED at 639.
2 out of 3 hunks FAILED -- saving rejects to file meson.build.rej
--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Buildroot] [PATCH] package/util-linux: fix build with old glibc
2023-09-06 19:17 ` Peter Korsgaard
@ 2023-09-06 20:12 ` Norbert Lange
0 siblings, 0 replies; 5+ messages in thread
From: Norbert Lange @ 2023-09-06 20:12 UTC (permalink / raw)
To: Peter Korsgaard; +Cc: buildroot
Am Mi., 6. Sept. 2023 um 21:17 Uhr schrieb Peter Korsgaard
<peter@korsgaard.com>:
>
> >>>>> "Peter" == Peter Korsgaard <peter@korsgaard.com> writes:
>
> Hi,
>
> >> I think this, together with the version bugfix bump to 2.39.2 should
> >> end up in BR 2023.08.
>
> > Can you give some more details about why? Is this a fix for a new issue
> > in 2.39.2 or already in 2.39.1? What is the relation between this and
> > commit 898bdbca1f11f (package/util-linux: fix compile issue with older
> > kernel headers)?
The problem persists in 2.39.1 and 2.39.2 (atleast), has a few attempts to
solve it. Both BR master/next would not compile if the kernel-headers
statx struct
disagrees with the one from glibc (misses some newer members).
This patch is for 2.39.2 / next and should finally solve it completely,
I don't see the value in hacking together a solution for 2.39.1 so
I would highly recommend picking the commits from next into master,
and this patch on top.
You have a few autobuild failures related to it, like
b1933b2dabea1fb49e9fce8e19f0532857d3b4c7
>
> Apparently not in 2.39.1?
>
> >>> util-linux 2.39.1 Patching
>
> Applying 0001-libmount-fix-statx-includes.patch using patch:
> patching file configure.ac
> Hunk #1 succeeded at 315 (offset -11 lines).
> Hunk #2 FAILED at 517.
> Hunk #3 FAILED at 526.
> 2 out of 3 hunks FAILED -- saving rejects to file configure.ac.rej
> patching file include/fileutils.h
> Hunk #1 FAILED at 94.
> 1 out of 1 hunk FAILED -- saving rejects to file include/fileutils.h.rej
> patching file libmount/src/hook_mount.c
> Hunk #1 FAILED at 294.
> 1 out of 1 hunk FAILED -- saving rejects to file libmount/src/hook_mount.c.rej
> patching file libmount/src/utils.c
> Hunk #1 FAILED at 111.
> 1 out of 1 hunk FAILED -- saving rejects to file libmount/src/utils.c.rej
> patching file meson.build
> Hunk #1 FAILED at 79.
> Hunk #2 succeeded at 175 with fuzz 2 (offset -2 lines).
> Hunk #3 FAILED at 639.
> 2 out of 3 hunks FAILED -- saving rejects to file meson.build.rej
>
> --
> Bye, Peter Korsgaard
Norbert
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-09-06 20:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-04 12:45 [Buildroot] [PATCH] package/util-linux: fix build with old glibc Norbert Lange
2023-09-04 12:48 ` Norbert Lange
2023-09-06 17:24 ` Peter Korsgaard
2023-09-06 19:17 ` Peter Korsgaard
2023-09-06 20:12 ` Norbert Lange
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox