* [PATCH 0/2] fix AT_RENAME_* redefinitions with glibc < 2.43 [not found] <CAHaCkme7C8LDpWVX8TnDQQ+feWeQy_SA3HYfpyyPNFee_+Z2EA@mail.gmail.com> @ 2025-11-09 7:13 ` Masaharu Noguchi 2025-11-09 7:13 ` [PATCH 1/2] uapi: fcntl: guard AT_RENAME_* aliases Masaharu Noguchi 2025-11-09 7:13 ` [PATCH 2/2] samples: vfs: avoid libc AT_RENAME_* redefinitions Masaharu Noguchi 0 siblings, 2 replies; 5+ messages in thread From: Masaharu Noguchi @ 2025-11-09 7:13 UTC (permalink / raw) To: jesperjuhl76, Jeff Layton, Chuck Lever Cc: Alexander Aring, linux-fsdevel, linux-kernel, Masaharu Noguchi LKML reports show that `allyesconfig` currently fails with glibc 2.42 because both `<stdio.h>` and `<linux/fcntl.h>` define the AT_RENAME_* macros. A follow-up pointed to glibc commit `1166170d9586 ("libio: Define AT_RENAME_* with the same tokens as Linux")`, which will first appear in glibc 2.43. Until that release lands in common distributions, upstream kernels still build against glibc versions that redeclare the macros and fail under `-Werror`. This series is a small, revertable workaround so developers on Fedora 43 (glibc 2.42) and other distributions with glibc < 2.43 can keep building the samples. The first patch only emits the AT_RENAME_* aliases when libc does not do so already, and the second patch undefines any libc-provided macros before including `<linux/fcntl.h>` in the VFS sample. Once glibc 2.43+ is ubiquitous (or if we decide to remove the aliases entirely), these changes can be dropped. Link: https://lore.kernel.org/all/CAHaCkme7C8LDpWVX8TnDQQ+feWeQy_SA3HYfpyyPNFee_+Z2EA@mail.gmail.com/ # LKML report Link: https://lore.kernel.org/all/20251013012423.GA331@ax162/ # follow-up Link: https://sourceware.org/git/?p=glibc.git;a=commit;h=1166170d95863e5a6f8121a5ca9d97713f524f49 # glibc fix Masaharu Noguchi (2): uapi: fcntl: guard AT_RENAME_* aliases samples: vfs: avoid libc AT_RENAME_* redefinitions include/uapi/linux/fcntl.h | 6 ++++++ samples/vfs/test-statx.c | 9 +++++++++ 2 files changed, 15 insertions(+) -- 2.51.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] uapi: fcntl: guard AT_RENAME_* aliases 2025-11-09 7:13 ` [PATCH 0/2] fix AT_RENAME_* redefinitions with glibc < 2.43 Masaharu Noguchi @ 2025-11-09 7:13 ` Masaharu Noguchi 2025-11-09 16:13 ` David Laight 2025-11-09 7:13 ` [PATCH 2/2] samples: vfs: avoid libc AT_RENAME_* redefinitions Masaharu Noguchi 1 sibling, 1 reply; 5+ messages in thread From: Masaharu Noguchi @ 2025-11-09 7:13 UTC (permalink / raw) To: jesperjuhl76, Jeff Layton, Chuck Lever Cc: Alexander Aring, linux-fsdevel, linux-kernel, Masaharu Noguchi Signed-off-by: Masaharu Noguchi <nogunix@gmail.com> --- include/uapi/linux/fcntl.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/uapi/linux/fcntl.h b/include/uapi/linux/fcntl.h index 3741ea1b73d8..e3026381fbe7 100644 --- a/include/uapi/linux/fcntl.h +++ b/include/uapi/linux/fcntl.h @@ -157,9 +157,15 @@ */ /* Flags for renameat2(2) (must match legacy RENAME_* flags). */ +#ifndef AT_RENAME_NOREPLACE #define AT_RENAME_NOREPLACE 0x0001 +#endif +#ifndef AT_RENAME_EXCHANGE #define AT_RENAME_EXCHANGE 0x0002 +#endif +#ifndef AT_RENAME_WHITEOUT #define AT_RENAME_WHITEOUT 0x0004 +#endif /* Flag for faccessat(2). */ #define AT_EACCESS 0x200 /* Test access permitted for -- 2.51.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] uapi: fcntl: guard AT_RENAME_* aliases 2025-11-09 7:13 ` [PATCH 1/2] uapi: fcntl: guard AT_RENAME_* aliases Masaharu Noguchi @ 2025-11-09 16:13 ` David Laight 0 siblings, 0 replies; 5+ messages in thread From: David Laight @ 2025-11-09 16:13 UTC (permalink / raw) To: Masaharu Noguchi Cc: jesperjuhl76, Jeff Layton, Chuck Lever, Alexander Aring, linux-fsdevel, linux-kernel On Sun, 9 Nov 2025 16:13:03 +0900 Masaharu Noguchi <nogunix@gmail.com> wrote: > Signed-off-by: Masaharu Noguchi <nogunix@gmail.com> > --- > include/uapi/linux/fcntl.h | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/include/uapi/linux/fcntl.h b/include/uapi/linux/fcntl.h > index 3741ea1b73d8..e3026381fbe7 100644 > --- a/include/uapi/linux/fcntl.h > +++ b/include/uapi/linux/fcntl.h > @@ -157,9 +157,15 @@ > */ > > /* Flags for renameat2(2) (must match legacy RENAME_* flags). */ > +#ifndef AT_RENAME_NOREPLACE > #define AT_RENAME_NOREPLACE 0x0001 > +#endif > +#ifndef AT_RENAME_EXCHANGE > #define AT_RENAME_EXCHANGE 0x0002 > +#endif > +#ifndef AT_RENAME_WHITEOUT > #define AT_RENAME_WHITEOUT 0x0004 > +#endif That looks like the start of an 'accident waiting to happen'. Either #undef the constants so that code is guaranteed to get the 'uapi' values, or do explicit checks, eg: /* stdio.h may have defined AT_RENAME_NOREPLACE */ #if !defined(AT_RENAME_NOREPLACE) || AT_RENAME_NOREPLACE != 0x0001 #define AT_RENAME_NOREPLACE 0x0001 #endif David > > /* Flag for faccessat(2). */ > #define AT_EACCESS 0x200 /* Test access permitted for ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] samples: vfs: avoid libc AT_RENAME_* redefinitions 2025-11-09 7:13 ` [PATCH 0/2] fix AT_RENAME_* redefinitions with glibc < 2.43 Masaharu Noguchi 2025-11-09 7:13 ` [PATCH 1/2] uapi: fcntl: guard AT_RENAME_* aliases Masaharu Noguchi @ 2025-11-09 7:13 ` Masaharu Noguchi 2025-11-09 16:04 ` David Laight 1 sibling, 1 reply; 5+ messages in thread From: Masaharu Noguchi @ 2025-11-09 7:13 UTC (permalink / raw) To: jesperjuhl76, Jeff Layton, Chuck Lever Cc: Alexander Aring, linux-fsdevel, linux-kernel, Masaharu Noguchi Signed-off-by: Masaharu Noguchi <nogunix@gmail.com> --- samples/vfs/test-statx.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/samples/vfs/test-statx.c b/samples/vfs/test-statx.c index 49c7a46cee07..eabea80e9db8 100644 --- a/samples/vfs/test-statx.c +++ b/samples/vfs/test-statx.c @@ -20,6 +20,15 @@ #include <sys/syscall.h> #include <sys/types.h> #include <linux/stat.h> +#ifdef AT_RENAME_NOREPLACE +#undef AT_RENAME_NOREPLACE +#endif +#ifdef AT_RENAME_EXCHANGE +#undef AT_RENAME_EXCHANGE +#endif +#ifdef AT_RENAME_WHITEOUT +#undef AT_RENAME_WHITEOUT +#endif #include <linux/fcntl.h> #define statx foo #define statx_timestamp foo_timestamp -- 2.51.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] samples: vfs: avoid libc AT_RENAME_* redefinitions 2025-11-09 7:13 ` [PATCH 2/2] samples: vfs: avoid libc AT_RENAME_* redefinitions Masaharu Noguchi @ 2025-11-09 16:04 ` David Laight 0 siblings, 0 replies; 5+ messages in thread From: David Laight @ 2025-11-09 16:04 UTC (permalink / raw) To: Masaharu Noguchi Cc: jesperjuhl76, Jeff Layton, Chuck Lever, Alexander Aring, linux-fsdevel, linux-kernel On Sun, 9 Nov 2025 16:13:04 +0900 Masaharu Noguchi <nogunix@gmail.com> wrote: > Signed-off-by: Masaharu Noguchi <nogunix@gmail.com> > --- > samples/vfs/test-statx.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/samples/vfs/test-statx.c b/samples/vfs/test-statx.c > index 49c7a46cee07..eabea80e9db8 100644 > --- a/samples/vfs/test-statx.c > +++ b/samples/vfs/test-statx.c > @@ -20,6 +20,15 @@ > #include <sys/syscall.h> > #include <sys/types.h> > #include <linux/stat.h> > +#ifdef AT_RENAME_NOREPLACE > +#undef AT_RENAME_NOREPLACE > +#endif > +#ifdef AT_RENAME_EXCHANGE > +#undef AT_RENAME_EXCHANGE > +#endif > +#ifdef AT_RENAME_WHITEOUT > +#undef AT_RENAME_WHITEOUT > +#endif There is no need for the #if, just #undef the symbols. It is probably worthy of a short comment. David > #include <linux/fcntl.h> > #define statx foo > #define statx_timestamp foo_timestamp ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-11-09 16:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CAHaCkme7C8LDpWVX8TnDQQ+feWeQy_SA3HYfpyyPNFee_+Z2EA@mail.gmail.com>
2025-11-09 7:13 ` [PATCH 0/2] fix AT_RENAME_* redefinitions with glibc < 2.43 Masaharu Noguchi
2025-11-09 7:13 ` [PATCH 1/2] uapi: fcntl: guard AT_RENAME_* aliases Masaharu Noguchi
2025-11-09 16:13 ` David Laight
2025-11-09 7:13 ` [PATCH 2/2] samples: vfs: avoid libc AT_RENAME_* redefinitions Masaharu Noguchi
2025-11-09 16:04 ` David Laight
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).