In <[EMAIL PROTECTED]>, 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.
Martin
--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <[EMAIL PROTECTED]> http://www.cons.org/cracauer/
BSD User Group Hamburg, Germany http://www.bsdhh.org/
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message