From owner-freebsd-current@FreeBSD.ORG Wed May 28 09:16:27 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2FF7B37B401 for ; Wed, 28 May 2003 09:16:27 -0700 (PDT) Received: from wall.polstra.com (wall-gw.polstra.com [206.213.73.130]) by mx1.FreeBSD.org (Postfix) with ESMTP id EF72343F85 for ; Wed, 28 May 2003 09:16:25 -0700 (PDT) (envelope-from jdp@polstra.com) Received: from strings.polstra.com (strings.polstra.com [206.213.73.20]) by wall.polstra.com (8.12.3p2/8.12.3) with ESMTP id h4SGGMuA010369 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Wed, 28 May 2003 09:16:22 -0700 (PDT) (envelope-from jdp@strings.polstra.com) Received: (from jdp@localhost) by strings.polstra.com (8.12.6/8.12.6/Submit) id h4SGGLKI070255; Wed, 28 May 2003 09:16:21 -0700 (PDT) (envelope-from jdp) Date: Wed, 28 May 2003 09:16:21 -0700 (PDT) Message-Id: <200305281616.h4SGGLKI070255@strings.polstra.com> To: current@freebsd.org From: John Polstra In-Reply-To: <20030529011400.A1228@gamplex.bde.org> References: <200305201025.30296.jlido@goof.com> <20030527200208.L1802@gamplex.bde.org> <3ED3804B.DC65E10A@mindspring.com> <20030529011400.A1228@gamplex.bde.org> Organization: Polstra & Co., Seattle, WA X-Bogosity: No, tests=bogofilter, spamicity=0.500009, version=0.11.2 Subject: Re: gcc/libm floating-point bug? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2003 16:16:27 -0000 In article <20030529011400.A1228@gamplex.bde.org>, Bruce Evans wrote: > On Tue, 27 May 2003, Terry Lambert wrote: > > > BTW: signal stacks are irrelevent; technically, you are not > > allowed to do floating point in signal handlers anyway. 8-). > > Not true. Signal handlers can do almost anything with local variables. > The main relevant restrictions on them is that they must not access > any static or global variables (other than write-only accesses to > objects whose type is volatile sig_atomic_t) or call any functions > that might make such accesses (which rules out calling most functions > including everything in libm). Those are the rules set forth by the C standard, but POSIX.1 demands much more from the implementation. There's a whole list of functions that POSIX says must be safely callable from signal handlers. Almost all of the I/O calls are included. Even fork and exec[lv]e must be callable from signal handlers. John -- John Polstra John D. Polstra & Co., Inc. Seattle, Washington USA "Two buttocks cannot avoid friction." -- Malawi saying