From: Jori Koolstra <jkoolstra@xs4all.nl>
To: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: brauner@kernel.org, broonie@kernel.org, cyphar@cyphar.com,
linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] vfs: uapi: retire octal and hex numbers in favor of (1 << n) for O_ flags
Date: Tue, 16 Jun 2026 16:50:06 +0200 (CEST) [thread overview]
Message-ID: <255283964.1967141.1781621406847@kpc.webmail.kpnmail.nl> (raw)
In-Reply-To: <20260616102250.3652779-1-geert+renesas@glider.be>
Dag Geert,
> Op 16-06-2026 12:22 CEST schreef Geert Uytterhoeven <geert+renesas@glider.be>:
>
>
> Hi Jori,
>
> > A recent build failure[1] exposed the diffculty of working with the
> > current octal and hex definitions of O_ flags when trying to find a gap
> > for a new flag. This difficulty is compounded by the fact that O_ flags
> > may have architectural specific values.
> >
> > Replace the hex/octal #defines, which are hard to parse when looking for
> > free bits, with explicit bit shifts like (1 << 11). Also, add comments
> > that identify which architectures redefine some of the seemingly free
> > ("cursed") bits in uapi/asm-generic/fcntl.h. These should not be used to
> > define new O_ flags (for now, at least).
> >
> > The translastion was done with Claude Opus 4.8, and verified with a
> > (non-AI) gawk script. The accounting of which architectures claim
> > which bit-gaps in uapi/asm-generic/fcntl.h is also done by hand.
> >
> > [1]: https://lore.kernel.org/all/agruPPybCx8q2XcJ@sirena.org.uk/
> >
> > Assisted-by: Claude:Opus 4.8
> > Signed-off-by: Jori Koolstra <jkoolstra@xs4all.nl>
>
> Thanks for your patch, which is now commit 0da79c259ad0554b ("vfs:
> uapi: retire octal and hex numbers in favor of (1 << n) for O_
> flags").
>
> > --- a/include/uapi/asm-generic/fcntl.h
> > +++ b/include/uapi/asm-generic/fcntl.h
> > @@ -15,51 +15,55 @@
> > * When introducing new O_* bits, please check its uniqueness in fcntl_init().
> > */
> >
> > -#define O_ACCMODE 00000003
> > -#define O_RDONLY 00000000
> > -#define O_WRONLY 00000001
> > -#define O_RDWR 00000002
> > +#define O_ACCMODE 3
> > +#define O_RDONLY 0
> > +#define O_WRONLY (1 << 0)
> > +#define O_RDWR (1 << 1)
>
> And suddenly all these constants became signed? Can't that cause subtle
> issues, especially for uapi headers?
Isn't 00000003 already singed? I am by no means a C language expert, but what
I can find in the C99 standard is:
The type of an integer constant is the first of the corresponding list in which
its value can be represented.
and for octal and hex constants this list starts with "int"
>
> #define O_ACCMODE 3U
> #define O_RDONLY 0
> #define O_WRONLY (1U << 0)
> #define O_RDWR (1U << 1)
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds
Groet,
Jori.
next prev parent reply other threads:[~2026-06-16 14:50 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260604222405.5382-1-jkoolstra@xs4all.nl>
2026-06-16 10:22 ` Geert Uytterhoeven
2026-06-16 14:50 ` Jori Koolstra [this message]
2026-06-17 6:36 ` Geert Uytterhoeven
2026-06-16 20:05 ` David Laight
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=255283964.1967141.1781621406847@kpc.webmail.kpnmail.nl \
--to=jkoolstra@xs4all.nl \
--cc=brauner@kernel.org \
--cc=broonie@kernel.org \
--cc=cyphar@cyphar.com \
--cc=geert+renesas@glider.be \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®