Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Apr 2010 19:29:09 -0700
From:      Garrett Cooper <yanefbsd@gmail.com>
To:        Garrett Wollman <wollman@csail.mit.edu>
Cc:        standards@freebsd.org
Subject:   Re: Non-POSIX compliant portions of FreeBSD
Message-ID:  <g2p7d6fde3d1004181929wbd37e83ag6757a61952ed78e0@mail.gmail.com>
In-Reply-To: <19398.2606.92468.700955@khavrinen.csail.mit.edu>
References:  <w2u7d6fde3d1004072200i6b1df9f5w780609c3265e400b@mail.gmail.com> <19398.2606.92468.700955@khavrinen.csail.mit.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Apr 14, 2010 at 11:32 AM, Garrett Wollman <wollman@csail.mit.edu> w=
rote:
> <<On Wed, 7 Apr 2010 22:00:41 -0700, Garrett Cooper <yanefbsd@gmail.com> =
said:
>
>> =A0 =A0 I was recently piqued by Warner to look into open_posix_testsuit=
e,
>> and I've noticed that there are some discrepancies in our compliance
>> with POSIX standards:
>
> Please take note of the broad variety of options in the POSIX
> specification. =A0There are many options which we do not implement,
> either because they are bad ideas (e.g., XSI, tracing), or because
> nobody has gotten around to implementing them (e.g., synchronous
> I/O). =A0A correct application will check (using getconf(1), sysconf(3),
> or both) whether the interface it desires is available before
> attempting to use it. =A0A broken application will use autoconf.

autoconf is pretty foolhardy, unless one's checking to make sure that
a function or struct conforms to the POSIX spec (I've seen that
before...).

>> 1. We don't implement any of the pieces in errno.h relating to POSIX
>> STREAMs (I assume this is intentional?).
>
> It is intentional.
>
>> 2. We don't define daylight or timezone in time.h -
>> http://www.opengroup.org/onlinepubs/009695399/basedefs/time.h.html
>
> This interface is broken as designed and impossible to implement
> correctly. =A0The POSIX "timezone" interface conflicts with the
> traditional BSD "timezone" interface (which is also broken as
> designed) and I don't think anyone has ever done the work to
> disentangle this particular mess.

Yeah... I assume that the same thing is true for tzname.

>> 3. We don't define SIGPOLL -
>> http://www.opengroup.org/onlinepubs/009695399/basedefs/signal.h.html
>
> Marked as OB (obsolete), XSR (STREAMS interface).

Where does it say obsolete?

>> 4. We don't define SCHED_SPORADIC and friends -
>> http://www.opengroup.org/onlinepubs/000095399/basedefs/sched.h.html
>> 5. We don't define the sched_param struct =A0-
>> http://www.opengroup.org/onlinepubs/000095399/basedefs/sched.h.html
>
> Marked as SS | TPS (options we don't implement).

4. Is SS|TPS, but 5. isn't listed with any clauses.

>> 6. We don't define bsd_signal (snickers) -
>> http://www.opengroup.org/onlinepubs/000095399/functions/bsd_signal.html
>
> Interface removed in SUSv7 (along with bcmp, bcopy, bzero, ecvt, fcvt,
> ftime, gcvt, getcontext, gethostbyaddr, gethostbyname, getwd, h_errno,
> index, makecontext, mktemp, pthread_attr_[gs]etstackaddr, rindex,
> scalb, setcontext, swapcontext, ualarm, usleep, vfork, and wcswcs).

Ok.

>> 7. We don't have clock_nanosleep, clock_getcpuclockid, or getdate
>> defined using the POSIX defined headers.
>
> POSIX_CLOCK_SELECTION option group.

Thanks,
-Garrett



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?g2p7d6fde3d1004181929wbd37e83ag6757a61952ed78e0>