Add AT_* constants from Linux 6.12
Nathan Chancellor
nathan@kernel.org
Sun Aug 3 17:54:20 GMT 2025
On Mon, Apr 14, 2025 at 01:00:22PM -0300, Adhemerval Zanella Netto wrote:
>
>
> On 09/04/25 16:51, Joseph Myers wrote:
> > Linux 6.12 adds AT_RENAME_* aliases for RENAME_* flags for renameat2,
> > and also AT_HANDLE_MNT_ID_UNIQUE. Add the first set of aliases to
> > stdio.h alongside the RENAME_* names, and AT_HANDLE_MNT_ID_UNIQUE to
> > bits/fcntl-linux.h.
> >
> > Tested for x86_64.
>
> LGTM, although I am not sure about the possible <linux/fcntl.h> inclusion
> clash.
Yeah, this appears to be the reason I now see some warnings when
building samples/vfs/test-statx.c and samples/watch_queue/watch_test.c
in the Linux kernel, which includes both linux/fcntl.h and stdio.h:
In file included from samples/vfs/test-statx.c:23:
usr/include/linux/fcntl.h:159:9: warning: 'AT_RENAME_NOREPLACE' macro redefined [-Wmacro-redefined]
159 | #define AT_RENAME_NOREPLACE 0x0001
| ^
/usr/include/stdio.h:171:10: note: previous definition is here
171 | # define AT_RENAME_NOREPLACE RENAME_NOREPLACE
| ^
In file included from samples/vfs/test-statx.c:23:
usr/include/linux/fcntl.h:160:9: warning: 'AT_RENAME_EXCHANGE' macro redefined [-Wmacro-redefined]
160 | #define AT_RENAME_EXCHANGE 0x0002
| ^
/usr/include/stdio.h:173:10: note: previous definition is here
173 | # define AT_RENAME_EXCHANGE RENAME_EXCHANGE
| ^
In file included from samples/vfs/test-statx.c:23:
usr/include/linux/fcntl.h:161:9: warning: 'AT_RENAME_WHITEOUT' macro redefined [-Wmacro-redefined]
161 | #define AT_RENAME_WHITEOUT 0x0004
| ^
/usr/include/stdio.h:175:10: note: previous definition is here
175 | # define AT_RENAME_WHITEOUT RENAME_WHITEOUT
| ^
Whose bug is this?
> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
>
> >
> > diff --git a/libio/stdio.h b/libio/stdio.h
> > index 4436525731..d042b36618 100644
> > --- a/libio/stdio.h
> > +++ b/libio/stdio.h
> > @@ -168,8 +168,11 @@ extern int renameat (int __oldfd, const char *__old, int __newfd,
> > #ifdef __USE_GNU
> > /* Flags for renameat2. */
> > # define RENAME_NOREPLACE (1 << 0)
> > +# define AT_RENAME_NOREPLACE RENAME_NOREPLACE
> > # define RENAME_EXCHANGE (1 << 1)
> > +# define AT_RENAME_EXCHANGE RENAME_EXCHANGE
> > # define RENAME_WHITEOUT (1 << 2)
> > +# define AT_RENAME_WHITEOUT RENAME_WHITEOUT
> >
> > /* Rename file OLD relative to OLDFD to NEW relative to NEWFD, with
> > additional flags. */
> > diff --git a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
> > index dfc554aafc..f425a4bf22 100644
> > --- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
> > +++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
> > @@ -379,6 +379,8 @@ struct file_handle
> > identity and may not
> > be usable to
> > open_by_handle_at. */
> > +# define AT_HANDLE_MNT_ID_UNIQUE 1 /* Return the 64-bit unique mount
> > + ID. */
> > #endif
> >
> > __BEGIN_DECLS
> >
>
More information about the Libc-alpha
mailing list