From 75c2df66f664428abb39836fe9b8bf5b9cfcc2a1 Mon Sep 17 00:00:00 2001 From: Julien Olivain Date: Mon, 16 Mar 2026 21:14:20 +0100 Subject: [PATCH] package/zfs: add patch to fix build with uclibc >= 1.0.57 uclibc 1.0.57 added a statx() syscall wrapper in upstream commit [1]. zfs fail to build with uclibc 1.0.57 (not yet in Buildroot), because: 1. uclibc internally includes , and 2. a zfs test redefines a statx() wrapper with a slightly different prototype. In that case, zfs fails to compile with error: tests/zfs-tests/cmd/statx.c:58:1: error: conflicting types for 'statx'; have 'int(int, const char *, int, unsigned int, void *)' Issue has been reported upstream at [2]. This commit adds a package patch to fix that issue. [1] https://github.com/wbx-github/uclibc-ng/commit/d3a819aff25af436e22abd5ba01ff2cfc0631b32 [2] https://github.com/openzfs/zfs/pull/18316 Signed-off-by: Julien Olivain (cherry picked from commit b6884913ae5e342e6ab3c8926447bde158e62de9) Signed-off-by: Thomas Perale --- ...ts-cmd-statx.c-avoid-statx-conflicts.patch | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 package/zfs/0001-tests-zfs-tests-cmd-statx.c-avoid-statx-conflicts.patch diff --git a/package/zfs/0001-tests-zfs-tests-cmd-statx.c-avoid-statx-conflicts.patch b/package/zfs/0001-tests-zfs-tests-cmd-statx.c-avoid-statx-conflicts.patch new file mode 100644 index 0000000000..98f905aa48 --- /dev/null +++ b/package/zfs/0001-tests-zfs-tests-cmd-statx.c-avoid-statx-conflicts.patch @@ -0,0 +1,49 @@ +From d363aafe0a773cd55890a385694cf05cb6225c5a Mon Sep 17 00:00:00 2001 +From: Julien Olivain +Date: Sun, 15 Mar 2026 13:18:07 +0100 +Subject: [PATCH] tests/zfs-tests/cmd/statx.c: avoid statx() conflicts + +With some libc, such as uclibc >= 1.0.57, the libc defines the statx() +function, while also internally including (from +from example), which results to a compilation error due to conflicting +types. + +This commit fixes the issue by only defining the statx() prototype only +if the libc was detected not to have a working statx() wrapper, and +explicitly include the otherwise. + +Upstream: Discussed in: https://github.com/openzfs/zfs/pull/18316#issuecomment-4062904581 +Signed-off-by: Julien Olivain +--- + tests/zfs-tests/cmd/statx.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/tests/zfs-tests/cmd/statx.c b/tests/zfs-tests/cmd/statx.c +index 1acc7e58c..c292fdbdf 100644 +--- a/tests/zfs-tests/cmd/statx.c ++++ b/tests/zfs-tests/cmd/statx.c +@@ -34,6 +34,9 @@ + * statx() may be available in the kernel, but not in the libc, so we build + * our own wrapper if we can't link one. + */ ++#ifdef HAVE_STATX ++#include ++#endif + + #ifndef __NR_statx + #if defined(__x86_64__) +@@ -54,9 +57,11 @@ + #endif /* __NR_statx */ + + ++#ifndef HAVE_STATX + int + statx(int, const char *, int, unsigned int, void *) + __attribute__((weak)); ++#endif + + static inline int + _statx(int fd, const char *path, int flags, unsigned int mask, void *stx) +-- +2.53.0 +