[Bug 259975] sys/file.h fails when -D_POSIX_C_SOURCE=200809L is given

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 21 Nov 2021 19:36:40 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259975

--- Comment #2 from Warner Losh <imp@FreeBSD.org> ---
(In reply to Warner Losh from comment #1)

Also, the name u_int is only defined in sys/types.h, so this likely is
unrelated to the POSIX_C_SOURCE stuff and instead based on the expectation that
sys/files.h is independently includable.

But, u_int isn't visible when POSIX_C_SOURCE is defined (since it's hidden
behind __BSD_VISIBLE. It also uses kvaddr_t, ksize_t and maybe a few others
that should likely also be protected with __BSD_VISIBLE since POSIX_C_SOURCE
says define what's in posix and nothing else.

I'd wager the name-space-clean fix is to make xfile only __BSD_VISIBLE, but
that too would likely break vtk since it's already doing dubious things with it
and including files that aren't defined in the posix standard.

Most likely, though, it wants to use flock (also not defined in POSIX.1-2008),
which is the only function I could find in base man pages that mention
sys/file.h inclusion. However, if it wants this extension, shouldn't it not be
defining that it doesn't want extensions?

-- 
You are receiving this mail because:
You are the assignee for the bug.