From owner-freebsd-current Fri Oct 13 13:51:03 1995 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id NAA11913 for current-outgoing; Fri, 13 Oct 1995 13:51:03 -0700 Received: from Wit401402.student.utwente.nl (wit401402.student.utwente.nl [130.89.236.162]) by freefall.freebsd.org (8.6.12/8.6.6) with ESMTP id NAA11907 for ; Fri, 13 Oct 1995 13:50:58 -0700 Received: (from alain@localhost) by Wit401402.student.utwente.nl (8.6.12/8.6.9) id VAA00770; Fri, 13 Oct 1995 21:50:44 +0100 Date: Fri, 13 Oct 1995 21:50:34 +0100 (MET) From: Alain Kalker Reply-To: A.C.P.M.Kalker@student.utwente.nl To: current@freebsd.org Subject: Floating point exceptions Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-current@freebsd.org Precedence: bulk Hello. After a long time I did another 'sup' and 'make world' (now -current at 10/12/95) and since I have some programs dumping core on floating point exceptions. They all ran without problems before (well, I wonder why Octave always exits with masked floating point exceptions, though). In the case of Csound I have found the offending instructions to be expressions involving comparisons or assignments. An example of an assignment which caused an exception: Wit401402:/usr/home/alain/src/csound/midifils$ gdb ../csound csound.core GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free Software Foundation, Inc... Core was generated by `csound'. Program terminated with signal 8, Floating point exception. #0 0x2a43b in shortran () at soundio.c:349 349 if ((longsmp = *sp) >= 0) { /* +ive samp: */ (gdb) print longsmp $1 = 495 (gdb) print *sp $2 = -0.205639988 (gdb) whatis longsmp type = long int (gdb) whatis *sp type = float (gdb) quit This case involves a type conversion, but I have also seen exceptions with comparisons of two (small) floats. Can anyone tell me how to fix these? Are there any changes to libc / libm* which might explain this? --- Alain