On 4/10/25 09:59, Nelson H. F. Beebe wrote:
I tried that, and gcc reported that O_SEARCH is unknown, and suggested
``did you mean 'O_EXCL'?''.
Oh, I thought DragonflyBSD was like other BSDs. My mistake;
<https://leaf.dragonflybsd.org/cgi/web-man?command=openat§ion=ANY>
says it has neither O_SEARCH nor O_PATH.
In that case please use O_RDONLY instead of O_SEARCH.
I made that change and ran the test:
% gcc dfly-openat-bug-2.c && ./a.out
d/f: File exists
% ls -Rl d
d:
total 0
The "File exists" report certainly seems like a red herring; one would
have expected "Directory not writable" or "File cannot be created."
Indeed, if you get the same result with O_RDONLY instead of O_SEARCH
it's a clear bug, one that gzip cannot work around reliably as far as I
can see.
My substitution of O_EXCL may have been incorrect, and I don't find
O_SEARCH documented in "man openat" on CentOS 7 or Ubuntu 24.
I can certainly post a note about this on the DragonflyBSD mailing
list, but will wait until I hear agreement from you.