ID:               22887
 User updated by:  josh at chatgris dot com
 Reported By:      josh at chatgris dot com
 Status:           Open
 Bug Type:         Scripting Engine problem
 Operating System: Gentoo Linux /w apache2
 PHP Version:      4.3.1
 New Comment:

Thank you for the suggestion!! 
 
I am going to try and compile my entire gentoo system from 
scratch using mcpu=i686 (I feel kinda iffy using 
march=pentium3 on a pentium4). 
 
I'll respond as soon as I have new information. 
 
Thanks again!!!! 
 
Josh.


Previous Comments:
------------------------------------------------------------------------

[2003-03-28 11:16:00] [EMAIL PROTECTED]

This is most likely being caused by over-optimization when 
compiling. I had a similar problem on my gentoo box, and 
the problem was traced back to over-optimizing when 
compiling glibc. (var_dump() was printing some weird 
floats, and I believe this problem is similar, as both use 
modf() at some point.) 
 
Basically, tone down the optimizations a bit. If you 
compile glibc with CFLAGS along the lines of 
"-march=pentium4 -O3...", modf() starts dying. The 
solution (for gentoo, at least) is to modify your USE flag 
in make.conf to use -march=pentium3 if you're using 
pentium4 and re-emerge glibc, then recompile PHP.  
 
gcc has problems with march pentium4 spitting out bad 
instructions, so you should stay away from it, even if 
you're actually on a Pentium 4. Use march=pentium3 or 
mcpu=i686 instead. There are threads on the gentoo forums 
about this, and newer versions of portage mention it in 
the make.conf comments. 
 
If this is indeed the problem, it affects python, too, 
fwiw. 
 
J 

------------------------------------------------------------------------

[2003-03-28 10:27:01] josh at chatgris dot com

I believe the problem is related..  For example, we are 
both using Pentium$ CPU's.. 
 
sprintf works fine on my Athlon, but not my pentium4... 
 
In addition, his example produced the same output on my 
machine.  and I've tried putting the float in a variable, 
float as a string it alwasy returns the same so I am 
pretty sure that the problem is within sprintf.. 
 
Could anyone tell me where the sprintf code is in php?  I 
don't mind messing with it and trying to figure out what 
is wrong... 
 
Josh.

------------------------------------------------------------------------

[2003-03-28 04:41:25] [EMAIL PROTECTED]

Works fine here (Gentoo with glibc 2.3.2), using php5 cvs from two days
ago (cli).

-tal

------------------------------------------------------------------------

[2003-03-28 02:43:18] [EMAIL PROTECTED]

Just tried PHP4.3.2/5 with CLI/Apache1 on mdk/winxp. All
work fine and the code that might cause the problems is not sapi
dependant.

The external message you pointed to is different because he used a
string to be printed with %f. That means it must first be converted to
a number and then printed.

------------------------------------------------------------------------

[2003-03-28 00:08:36] josh at chatgris dot com

I am not the only one experiencing this problem..  plus it 
seems to round the number randomly for example 
 
 
echo sprintf('%.2f', '8.7586206896551724');  
  
returns 10.00 
 
the person who had this problem's post is here 
 
http://forums.gentoo.org/viewtopic.php?t=38470&highlight=sprintf

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/22887

-- 
Edit this bug report at http://bugs.php.net/?id=22887&edit=1

Reply via email to