So I have stumbled across a linux emulation bug in freebsd. Below
is the program that returns different results based on FreeBSD,
Linux or Linux emulation under FreeBSD.
Running natively under FreeBSD:
x = 53.27850000
exp(x) = 137581029243568449912832.00000000
Running natively under Linux:
x = 53.278500
exp(x) = 137581029243568449912832.000000
Running under FreeBSD in Linux emulation mode:
x = 53.27850000
exp(x) = 137581029243567812378624.00000000
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main (int argc, char **argv) {
double x = 53.278500;
printf ("x = %8lf\n", x);
printf ("exp(x) = %8lf\n", exp(x));
exit (0);
}
There are only two shared libaries in common (libc and libm) and
both are the same on FreeBSD (in /compat/linux) and Linux.
So any ideas on where the program is going wrong?
- JimP
--
--- @(#) $Id: dot.signature,v 1.10 2001/05/17 23:38:49 Jim.Pirzyk Exp $
__o [EMAIL PROTECTED] ------------- [EMAIL PROTECTED]
_'\<,_ Senior Systems Engineer, Walt Disney Feature Animation
(*)/ (*)
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message