Bug#119974: Bug confirmed
On Fri, Jan 10, 2003 at 05:50:06PM +0100, José Luis González González wrote:
> > Is any of this documented anywhere? I think the original bug submitter
> > filed the bug because according to his understanding of the
> > documentation,
> > fsync *should* be included when _POSIX_SOURCE is defined. The manpage
> > *does* mention POSIX.1b; so if what you describe above is actually
> > documented somewhere, then the submitter should be referred to it, and the
> > bug should be closed.
> Yes, I was aware of it; and no, I did not file the bug because it's not
> included when _POSIX_SOURCE is defined, but because it never gets
> included (whatever number you define it as) unless you also define the
> BSD or X/OPEN test macros. In fact, my report was a bit vague because
> I was confused by the documentation. The glibc info documentation just
> says POSIX on its Summary of Library Facilities (announced as
> Library Summary from the top level index):
So you're saying that even if you ask for POSIX.1b, you still don't get
> `int fsync (int FILDES)'
> `unistd.h' (POSIX): *Note Synchronizing I/O::.
> Just saying POSIX does not tell you if its POSIX.1 or POSIX.1b.
Right. So the glibc documentation must be fixed.
> I just reported that, as unistd.h guards the function prototype, you
> must ask for BSD or X/OPEN functionality to get it included. Asking
> only for POSIX (whatever revision you ask for, including the most current
> one) does not include the function prototype, and so it's a bug on
> glibc's headers. This bug report is just about the test-macros bug; now,
> if someone confirms that fsync() is from POSIX.1b then (s)he must file a
> bug to the glibc documentation so it no longer documents fsync() as POSIX
> but POSIX.1b.
According to my online research, fsync is NOT part of POSIX.1, but it IS a
part of POSIX.1b. There was an earlier contention over fsync's semantics
that precluded it from being in POSIX.1; but apparently the POSIX people
have decided to put it in 1b. Now, whether or not the glibc headers
correctly reflect this is something the glibc maintainers should check.
Also, if the glibc docs are confusing, then it should be fixed so that
fsync is clearly labelled as POSIX.1b, not just POSIX (which, IIRC, means
POSIX.1 only---or at least, that's what the current glibc headers will
give you when you ask for POSIX.)
Too many people seek freedom but are enslaved by their seeking.