Return to BSD News archive
Xref: sserve comp.os.386bsd.bugs:2340 comp.os.386bsd.questions:11624
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!yeshua.marcam.com!MathWorks.Com!panix!not-for-mail
From: wpaul@panix.com (Bill Paul)
Newsgroups: comp.os.386bsd.bugs,comp.os.386bsd.questions
Subject: Re: Floating point bug in FreeBSD?
Followup-To: comp.os.386bsd.bugs,comp.os.386bsd.questions
Date: 13 Jul 1994 19:54:47 -0400
Organization: The M00se Illuminati (bl00p!)
Lines: 57
Message-ID: <301us7$2qp@panix3.panix.com>
References: <steve.774119810@ichips.intel.com>
NNTP-Posting-Host: panix3.panix.com
X-Newsreader: TIN [version 1.2 PL2]
Daring to challenge the will of the almighty Leviam00se,
Steve Willoughby (steve@ichips.intel.com) had the courage to say:
: Sorry if this has been talked about before, but I just started reading the
: newsgroup. I saw someone mention libm bugs in a previous article, and was
: wondering if that's related to a problem I'm seeing on my FreeBSD box.
[description of floating point bogosity munched for brevity]
: I wrote a quick C program using the supplied gcc compiler, and it too
: thinks sqrt(2)==2. Sound familiar to anyone? hardware FP problem?
: gcc bug? libm error?
Try FP emulation problem. Read on.
: The machine is a 386. uname -a says, if I'm reading this correctly, that
: the version of FreeBSD is 1.0.2 GENERICBT#0 i386.
: I'm considering going with 1.1.5.1 now, but I'd like to know if that'll
: really solve my problem.
: Thanks for any help you can offer.
: --
: Steve Willoughby Intel Corporation GCS d-- -p+ c+++
I think the precompiled binaries for perl et al. which you said wouldn't
run on your system might have been built for a newer version of FreeBSD
(1.1, at the very least). I say 'I think' because I haven't run 1.0.2
myself, but it's a likely explanation.
As for sqrt(2) == 2, this suggests that your system is using the
software FP emulation instead of a real 80387. The default math
emulation available in FreeBSD is really bad, as you've apparently
discovered. (As an aside, I once tried running the 'paranoia'
program on FreeBSD 1.1 with the emulator and it got stuck in an
infinite loop while testing for underflow. :)
As of 1.1.5, however, FreeBSD also includes a port of the
Linux FPU emulator which is considerably more precise. It's still
not included in the default configuration (probably because it's
GNU copylefted), but building a new kernel with the new emulator
enabled is pretty simple. It might be possible to obtain a copy
of the Linux FPU emulator for 1.0.2, but my impression is that it
would be a good idea to upgrade the whole system anyway. Less trouble
in the end.
Hope this helps.
-Bill
--
_ /\ _ Join the
/ \_/\_/ \_/\_/ \ .----. M00se Illuminati Bill Paul
\_____/ () \_____/ (bl00p!) Face it: wouldn't <Big City M00se>
/ \ `----' you feel much wpaul@panix.com -or-
/ \__/ \ --' safer? ghod@drycas.club.cc.cmu.edu
/__________\