Thread (12 messages) flat view 12 messages, 5 authors, 2025-09-03

Re: [PATCH v4] linux: Add openat2 (BZ 31664)

From: Adhemerval Zanella Netto <hidden>
Date: 2025-08-28 17:06:08


On 28/08/25 10:43, Paul Eggert wrote:
On 2025-08-28 01:42, Aleksa Sarai wrote:
quoted
quoted
I still fail to understand how a hypothetical "give me the supported flags"
openat2 flag would be useful enough to justify complicating the openat2 API
today.
My only concern is that it would break recompiles if/when we change it
back.
OK, but from what I can see there's no identified possibility that openat2 will modify the objects its arguments point to, just as there's no identified possibility that plain openat will do so (in a hypothetical extension to remove unnecessary slashes from its filename argument, say).

In that case it's pretty clear that glibc should mark the open_how argument as pointer-to-const, just as glibc already marks the filename argument.
I am still not sure how a potentially CHECK_FIELDS feature would play with 
openat2 in the future, especially since glibc now prefers to first include 
the kernel headers before redefining a minimal API to the syscall usage 
(meaning that programs will have access to potentially new flags depending 
on the installed kernel header).

If the kernel intends to modify the open_how in the future, setting open_how 
as const will only add extra confusion. Users might be exposed to this feature 
without explicitly including the kernel headers.

Another option might to *not* include the kernel headers and keep syncing the 
kernel definitions on kernel releases (and maybe excluding flags that might 
modify the open_how). As Florian has said, this kind of mediation by glibc was 
historically time-consuming, complex, and subject to subtle bugs (and that's 
why we abandoned this over time).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help