Date: Fri, 5 May 2000 18:30:26 -0700 (PDT) From: Nate Lawson <nate@elite.net> To: Martin Cracauer <cracauer@cons.org> Cc: freebsd-hackers@FreeBSD.ORG, freebsd-ports@FreeBSD.ORG, davidm@hpl.hp.com Subject: Re: floating point exceptions Message-ID: <Pine.BSD.3.91.1000505182535.9032C-100000@almond.elite.net> In-Reply-To: <20000505233552.A47008@cons.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 5 May 2000, Martin Cracauer wrote: > In <Pine.BSD.3.91.1000424233753.13392A-100000@almond.elite.net>, Nate Lawson wrote: > > I am running FreeBSD 4.0-RELEASE on x86 with gcc 2.95.2 and the > > httperf-0.6 port gives a SIGFPE and dumps core when run against a system > > that has no web server running. (The default behavior is to measure > > localhost when no arguments are specified). > > > > It seems this is caused by a divide by zero error since the delta between > > connections ends up being zero. The author suggest that the divide > > should return a defined value, Inf, according to the IEEE floating point > > standard. FreeBSD generates SIGFPE. I temporarily patched the code > > locally to check for a delta of zero and arbitrarily set it to 1.0 so > > that the divide succeeds and everything comes out ok without crashing. > > FreeBSD up to 3.x defaults to have exceptions unmasked. > > This was changed before 4.0 and should be in 4.x/4-STABLE and in > 5-current. > > Are you sure you get this on a real 4.0 system, not one from a few > weeks before release? If so, what is the version of > /usr/include/machine/npx.h? It should be 1.18. Of course, the kernel > should be complied with it in case this is a source-updated system. > > Anyway, the solution is fpsetmask, as others noted. > > Also note that FreeBSD/gcc/ANSI C 89 have a few other problems with > IEEE 754 compatibility so that we can't claim conformity in any case. > > Please check the mail archives on www.freebsd.org, this has been > discussed every 7 months for the last 5 years now. Thanks for the information. I checked the system again and it is indeed 4.0-20000127-CURRENT (ie. just before 4.0-RELEASE). I will upgrade. David, is it possible to add the following to the httperf port? #ifdef __FreeBSD__ fpsetmask(~FP_X_DZ); #endif Thanks, Nate To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSD.3.91.1000505182535.9032C-100000>