From owner-freebsd-standards@FreeBSD.ORG Sat Apr 17 21:38:59 2010 Return-Path: Delivered-To: standards@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 76BFB1065676 for ; Sat, 17 Apr 2010 21:38:59 +0000 (UTC) (envelope-from yanefbsd@gmail.com) Received: from qw-out-2122.google.com (qw-out-2122.google.com [74.125.92.26]) by mx1.freebsd.org (Postfix) with ESMTP id 2FC228FC19 for ; Sat, 17 Apr 2010 21:38:59 +0000 (UTC) Received: by qw-out-2122.google.com with SMTP id 5so1188267qwi.7 for ; Sat, 17 Apr 2010 14:38:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:received:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=RPMmu323MgOpq/UP2NpmdXtOUnTGNMt6u/J/5xU4HuI=; b=pYeVEZTX1AOkaN/beS9EiOn30VC/Kbl2IU1KLgs8WKNsIL+DqfO7zdeirD/RN7xnXF RuU2VuvIaSlanSZpqA1YtYq7neBKyg5KbEhm4mfmJRU4TSWuokIJlrapdH1/mZg6fmbr APfwy8HZ8uLi9H6/gYIR/v4xpgLFKBKneVW+U= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=FUASwokATi0TIV9EqzaHReO2YicuFiZ4GBmNtNGZ7SKj5twicFFFKMTilyJHdHQ/MY mvXRM3pkGCM3V4a5RU35+ykl1IzT9cJyVYWoZ+F+pquN3IpW4y8EsdxCHxQ/JETp3IUE unueHRYZTXwH3cLXSR9HDxSIoUiIaXHDnATGg= MIME-Version: 1.0 Received: by 10.229.28.85 with HTTP; Sat, 17 Apr 2010 14:38:58 -0700 (PDT) In-Reply-To: <20100417210223.GA41384@stack.nl> References: <19398.2606.92468.700955@khavrinen.csail.mit.edu> <20100417210223.GA41384@stack.nl> Date: Sat, 17 Apr 2010 14:38:58 -0700 Received: by 10.229.221.14 with SMTP id ia14mr4748978qcb.8.1271540338427; Sat, 17 Apr 2010 14:38:58 -0700 (PDT) Message-ID: From: Garrett Cooper To: Jilles Tjoelker Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Garrett Wollman , standards@freebsd.org Subject: Re: Non-POSIX compliant portions of FreeBSD X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2010 21:38:59 -0000 On Sat, Apr 17, 2010 at 2:02 PM, Jilles Tjoelker wrote: > On Wed, Apr 14, 2010 at 02:32:14PM -0400, Garrett Wollman wrote: >> <= said: >> >> > =A0 =A0 I was recently piqued by Warner to look into open_posix_testsu= ite, >> > 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. > >> > 7. We don't have clock_nanosleep, clock_getcpuclockid, or getdate >> > defined using the POSIX defined headers. > >> POSIX_CLOCK_SELECTION option group. > > clock_nanosleep is in the base in the 2008 version (SUSv4); the previous > POSIX_CLOCK_SELECTION option is now required. Implementing > clock_nanosleep requires a new in-kernel facility to sleep until a > certain CLOCK_REALTIME value in such a way that setting the clock > forwards makes it wake up earlier and vice versa (in particular, the > thread needs to be woken up immediately if the clock is stepped beyond > the specified absolute time). pthread_cond_timedwait() (unless the > application has selected the CLOCK_MONOTONIC clock), > pthread_mutex_timedlock(), pthread_rwlock_timedrdlock(), > pthread_rwlock_timedwrlock(), mq_timedsend(), mq_timedreceive() and > maybe more are also specified to sleep in this manner, but FreeBSD > effectively uses CLOCK_MONOTONIC timing for them, except that some of > them will correctly sleep longer if the clock has been set backwards. > This error probably has little practical effect, but clock_nanosleep() > doesn't really add anything above nanosleep() if it does not implement > absolute CLOCK_REALTIME sleeps. > > clock_getcpuclockid is part of the _POSIX_CPUTIME option. Most of the > functionality of this option can be obtained via setitimer(ITIMER_PROF), > clock_gettime(CLOCK_PROF), getrusage() and kvm_getprocs(). > > getdate is in the XSI option group. This is good stuff to note. I'll be taking this info as well as anything else I get and commit it back to LTP's copy of the openposix test suite so that this stuff is corrected upstream. Thanks, -Garrett