<<On Thu, 20 May 2004 12:52:35 +0100, Andrew Josey <yyyyyy@xxxxxxxxxxxxxxxxx>
said:
> The situation as I understand it is that we have some platforms who are
> not defining a symbolic constant, do not support the option and are not
> supplying an associated header and function stubs for compilation.
I think problem is closer to this: we have a large number of platforms
that are in an intermediate state between 1003.1-1996 (with
amendments) and 1003.1-200x. It is natural for the development and
compliance process to consider (and definitively either implement or
disable) each option separately, but at the same time, people are
trying to write conforming applications that use these options.
Just to give one example, although slightly at a tangent to the
present discussion. 1003.1-2001 is the first POSIX version that
FreeBSD can support on ILP32 platforms. We set up the compilation
environment such that it claims to be 1003.1-2001 compliant. (And we
actually do define all of the option constants, although some of the
now-standard-non-options that we don't yet support are not defined in
the way the standard requires.) However, the utilities are much
farther from being compliant, and will probably be that way for the
foreseeable future thanks to the syntax changes in `sort'; we leave
{_POSIX_2_VERSION} at the old value, because some utilities base their
syntax on the value of this parameter. Now obviously, this
configuration does not comply with the letter of the standard. We set
_POSIX_VERSION to 200112, however, because we want to indicate that
our *goal* is compliance, and a developer who runs into one of these
areas where we don't quite do what the Standard says is invited to
file a bug report.
It's not hard to imagine an implementor starting with a 1003.1-1996
system (indicating non-support of certain features by non-definition
of those constants) needing to support some of 1003.1-2001's
interfaces and functionality for commercial reasons, but not ready to
commit to full implementation of the new Standard.
-GAWollman
|