Hello community, here is the log from the commit of package tcl for openSUSE:Factory checked in at Thu Mar 18 22:48:34 CET 2010. -------- --- tcl/tcl.changes 2010-01-21 12:56:07.000000000 +0100 +++ tcl/tcl.changes 2010-02-19 19:50:19.000000000 +0100 @@ -1,0 +2,6 @@ +Fri Feb 19 19:36:17 CET 2010 - max@suse.de + +- Add tcl-SafeLdExp.patch to prevent a floating point assist fault + during startup on IA64 (bnc#578068). + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- tcl-SafeLdExp.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ tcl.spec ++++++ --- /var/tmp/diff_new_pack.6pSihi/_old 2010-03-18 22:44:56.000000000 +0100 +++ /var/tmp/diff_new_pack.6pSihi/_new 2010-03-18 22:44:56.000000000 +0100 @@ -21,7 +21,7 @@ Name: tcl Url: http://www.tcl.tk Version: 8.5.8 -Release: 2 +Release: 3 %define TCL_MINOR %(echo %version | cut -c1-3) BuildRoot: %{_tmppath}/%{name}-%{version}-build Summary: The Tcl Programming Language @@ -42,6 +42,7 @@ Patch0: tcl.patch Patch1: tcl-unload.patch Patch2: tcl-fortify.patch +Patch3: tcl-SafeLdExp.patch %description Tcl (Tool Command Language) is a very powerful but easy to learn @@ -90,6 +91,7 @@ %patch0 %patch1 %patch2 +%patch3 %build cd unix ++++++ tcl-SafeLdExp.patch ++++++ ? NSK1200002852A Index: generic/tclStrToD.c =================================================================== RCS file: /cvsroot/tcl/tcl/generic/tclStrToD.c,v retrieving revision 1.39 diff -u -r1.39 tclStrToD.c --- generic/tclStrToD.c 7 Dec 2009 17:15:33 -0000 1.39 +++ generic/tclStrToD.c 19 Feb 2010 02:42:35 -0000 @@ -110,7 +110,6 @@ static int mantBits; /* Number of bits in a double's significand */ static mp_int pow5[9]; /* Table of powers of 5**(2**n), up to * 5**256 */ -static double tiny; /* The smallest representable double */ static int maxDigits; /* The maximum number of digits to the left of * the decimal point of a double. */ static int minDigits; /* The maximum number of digits to the right @@ -1490,8 +1489,8 @@ goto returnValue; } retval = SafeLdExp(retval, machexp); - if (retval < tiny) { - retval = tiny; + if (retval == 0.0) { + retval = SafeLdExp(1.0, DBL_MIN_EXP * log2FLT_RADIX - mantBits); } /* @@ -2245,7 +2244,6 @@ * the significand of a double. */ - tiny = SafeLdExp(1.0, DBL_MIN_EXP * log2FLT_RADIX - mantBits); maxDigits = (int) ((DBL_MAX_EXP * log((double) FLT_RADIX) + 0.5 * log(10.)) / log(10.)); minDigits = (int) floor((DBL_MIN_EXP - DBL_MANT_DIG) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org