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>