From b298791bcca7b9d9ffc1af32bf415e7c5dcca498 Mon Sep 17 00:00:00 2001 From: dkf Date: Wed, 25 Jan 2006 23:06:15 +0000 Subject: Backport of part of FreeBSD port --- ChangeLog | 5 +++++ unix/tclUnixInit.c | 13 ++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4d0695f..aaeef1d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-01-25 Donal K. Fellows + + * unix/tclUnixInit.c (TclpInitPlatform): Improved conditions on when + to update the FP rounding mode on FreeBSD, taken from FreeBSD port. + 2006-01-23 Miguel Sofer * generic/tclStringObj.c (Tcl_GetRange): diff --git a/unix/tclUnixInit.c b/unix/tclUnixInit.c index 13a8cee..34c36fb 100644 --- a/unix/tclUnixInit.c +++ b/unix/tclUnixInit.c @@ -7,7 +7,7 @@ * Copyright (c) 1999 by Scriptics Corporation. * All rights reserved. * - * RCS: @(#) $Id: tclUnixInit.c,v 1.34.2.11 2005/11/03 16:16:29 dgp Exp $ + * RCS: @(#) $Id: tclUnixInit.c,v 1.34.2.12 2006/01/25 23:06:16 dkf Exp $ */ #if defined(HAVE_COREFOUNDATION) @@ -19,7 +19,7 @@ #ifdef HAVE_LANGINFO #include #endif -#if defined(__FreeBSD__) +#if defined(__FreeBSD__) && defined(__GNUC__) # include #endif #if defined(__bsdi__) @@ -204,7 +204,14 @@ TclpInitPlatform() (void) signal(SIGPIPE, SIG_IGN); #endif /* SIGPIPE */ -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) && defined(__GNUC__) + /* + * Adjust the rounding mode to be more conventional. Note that FreeBSD + * only provides the __fpsetreg() used by the following two for the GNU + * Compiler. When using, say, Intel's icc they break. (Partially based on + * patch in BSD ports system from root@celsius.bychok.com) + */ + fpsetround(FP_RN); fpsetmask(0L); #endif -- cgit v0.12