Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Mar 2002 06:30:02 -0800 (PST)
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        freebsd-alpha@FreeBSD.org
Subject:   Re: alpha/36327: trap within cvt() while attempting to printf() an FP number
Message-ID:  <200203261430.g2QEU2s77171@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR alpha/36327; it has been noted by GNATS.

From: Andrew Gallatin <gallatin@cs.duke.edu>
To: "Loren J. Rittle" <ljrittle@FreeBSD.ORG>
Cc: freebsd-gnats-submit@FreeBSD.ORG
Subject: Re: alpha/36327: trap within cvt() while attempting to printf() an FP number
Date: Tue, 26 Mar 2002 09:21:25 -0500 (EST)

 I beleive this only works for floating point operations which have
 software completion enabled.  Eg, -mieee.
 
 Have you tried adding  -mieee to CFLAGS?
 
 Drew
 
 
 Loren J. Rittle writes:
  > 
  > >Number:         36327
  > >Category:       alpha
  > >Synopsis:       trap within cvt() while attempting to printf() an FP number
  > >Confidential:   no
  > >Severity:       non-critical
  > >Priority:       low
  > >Responsible:    freebsd-alpha
  > >State:          open
  > >Quarter:        
  > >Keywords:       
  > >Date-Required:
  > >Class:          sw-bug
  > >Submitter-Id:   current-users
  > >Arrival-Date:   Tue Mar 26 01:10:00 PST 2002
  > >Closed-Date:
  > >Last-Modified:
  > >Originator:     Loren J. Rittle
  > >Release:        4.2 and 5.0 on alpha hardware
  > >Organization:
  > On behalf of libjava project of GCC
  > >Environment:
  > FreeBSD clerc-milon.rsch.comm.mot.com 4.2-STABLE FreeBSD 4.2-STABLE #0: Tue Dec 19 09:52:15 CST 2000     rittle@clerc-milon.rsch.comm.mot.com:/usr/obj/usr/src/sys/CLERC-MILON  alpha
  > FreeBSD beast.freebsd.org 5.0-CURRENT FreeBSD 5.0-CURRENT #10: Sat Mar 16 13:34:04 PST 2002     root@beast.freebsd.org:/usr/src/sys/alpha/compile/BEAST  alpha
  > >Description:
  > The attached small test case was found by trying to bootstrap libjava
  > on alpha*-*-freebsd[45]* as will be released with gcc 3.1.  The
  > exact failure in libjava is different than the constructed small test
  > case but the failure point within the system routine is the same.
  > 
  > Also, I attempted to use the information from fpsetmask(3) to avoid
  > the trap without success.  Even the exact example from the man page
  > suggested to avoid the divide by zero trap does not work as documented.
  > >How-To-Repeat:
  > Compile this program with the system gcc without -O flags on
  > FreeBSD/alpha:
  > 
  > #include <float.h>
  > #include <stdio.h>
  > 
  > main() {
  >   double d = DBL_MIN;
  > 
  >   printf (" = %.17g;\n", d);
  >   printf (" = %.17g;\n", d/10);
  >   printf (" = %.17g;\n", (DBL_MIN/10)*10);
  >   printf (" = %.17g;\n", (DBL_MIN/10));
  > }
  > 
  > It will produce this output:
  > 
  >  = 2.2250738585072014e-308;
  >  = 0;
  >  = 2.2250738585072034e-308;
  > floating point exception--core dumped
  > 
  > ISO C might allow the test case to perform as seen.  However,
  > FreeBSD/alpha has a man page discussing how to avoid the trap.
  > Cut-and-paste the sample code to avoid a divide by zero.  It
  > doesn't disable the trap.  It might be OK if there was no way
  > to avoid the trap with this exact test case but knowing when
  > it is safe to call libc routines with a given FP value would
  > be helpful/required to allow libjava to work on FreeBSD/alpha.
  > >Fix:
  >       
  > >Release-Note:
  > >Audit-Trail:
  > >Unformatted:
  > 
  > To Unsubscribe: send mail to majordomo@FreeBSD.org
  > with "unsubscribe freebsd-alpha" in the body of the message

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




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