Date: Wed, 14 Apr 2010 14:32:14 -0400 From: Garrett Wollman <wollman@csail.mit.edu> To: Garrett Cooper <yanefbsd@gmail.com> Cc: standards@freebsd.org Subject: Non-POSIX compliant portions of FreeBSD Message-ID: <19398.2606.92468.700955@khavrinen.csail.mit.edu> In-Reply-To: <w2u7d6fde3d1004072200i6b1df9f5w780609c3265e400b@mail.gmail.com> References: <w2u7d6fde3d1004072200i6b1df9f5w780609c3265e400b@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
<<On Wed, 7 Apr 2010 22:00:41 -0700, Garrett Cooper <yanefbsd@gmail.com> said: > I was recently piqued by Warner to look into open_posix_testsuite, > 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. There 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). A correct application will check (using getconf(1), sysconf(3), or both) whether the interface it desires is available before attempting to use it. A broken application will use autoconf. > 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. The 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. > 3. We don't define SIGPOLL - > http://www.opengroup.org/onlinepubs/009695399/basedefs/signal.h.html Marked as OB (obsolete), XSR (STREAMS interface). > 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 - > http://www.opengroup.org/onlinepubs/000095399/basedefs/sched.h.html Marked as SS | TPS (options we don't implement). > 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). > 7. We don't have clock_nanosleep, clock_getcpuclockid, or getdate > defined using the POSIX defined headers. POSIX_CLOCK_SELECTION option group. -GAWollman
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19398.2606.92468.700955>