OK, having to call fpsetmask(0) is an acceptable workaround. So if I
do:
#ifdef __freebsd___
fpsetmask(0);
#endif
Then this should work on all versions of freebsd?
--david
>>>>> On Tue, 25 Apr 2000 00:05:23 -0700, Brooks Davis <[EMAIL PROTECTED]>
>said:
Brooks> On Mon, Apr 24, 2000 at 11:44:59PM -0700, 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.
>>
>> Is FreeBSD's behavior correct? Why or why not? You can use the
>> included code snippet to verify that this occurs.
Brooks> FreeBSD has traditionaly violated the IEEE FP standard in
Brooks> this regard. This is fixed in 5.0 and I think in 4.0-STABLE
Brooks> (though I can't remember what file this is in so I can't
Brooks> check.) If upgrading to -stable isn't an option you can add
Brooks> a call to fpsetmask(3) in the application as follows (this
Brooks> will work on Solaris and Irix as well):
Brooks> #include <ieeefp.h> <...> main() { <declare things>
Brooks> fpsetmask(0); <...> }
Brooks> -- Brooks
Brooks> -- Any statement of the form "X is the one, true Y" is
Brooks> FALSE.
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message