Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Jul 2001 11:09:22 -0700 (PDT)
From:      Jim.Pirzyk@disney.com
To:        freebsd-hackers@freebsd.org
Subject:   math library difference between linux emulation and native freebsd (and native linux)
Message-ID:  <200107141809.f6EI9M809946@snoopy.fan.fa.disney.com>

next in thread | raw e-mail | index | archive | help
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   Jim.Pirzyk@disney.com ------------- pirzyk@freebsd.org
 _'\<,_   Senior Systems Engineer, Walt Disney Feature Animation 
(*)/ (*)  

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107141809.f6EI9M809946>