#20542 [NoF->Csd]: 0+0=4G on aix4.3 (64bits)
| From: | rvl at interchain dot nl | Date: | Fri, 13 Dec 2002 08:25:53 +0000 |
| Subject: | #20542 [NoF->Csd]: 0+0=4G on aix4.3 (64bits) | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-27566@lists.php.net to get a copy of this message | ||
ID: 20542
User updated by: rvl@interchain.nl
Reported By: rvl@interchain.nl
-Status: No Feedback
+Status: Closed
Bug Type: Math related
Operating System: aix 4.3.3.0
PHP Version: 4.2.3
New Comment:
Seems a gcc bug.
Now PHP compiled with the native AIX C compiler
(and apache still compiled with gcc)
and it works.
Previous Comments:
------------------------------------------------------------------------
[2002-12-13 01:00:01] php-bugs@lists.php.net
No feedback was provided for this bug for over 2 weeks, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
------------------------------------------------------------------------
[2002-11-27 18:54:59] iliaa@php.net
Could this be an issue with the C library used on AIX? On a 64 bit
platform (64sparc) I cannot replicate the problem using PHP 4.2.3.
------------------------------------------------------------------------
[2002-11-22 02:47:23] rvl@interchain.nl
I am sorry but on this specific platform
<?php echo (0+0); ?> does result in 4294967294, really!
And <?php $x = 0; $x = $x + 0; echo $x; ?> as well.
------------------------------------------------------------------------
[2002-11-21 17:25:14] iliaa@php.net
Sorry, but your problem does not imply a bug in PHP itself. For a
list of more appropriate places to ask for help using PHP, please
visit http://www.php.net/support.php as this bug system
is not the
appropriate forum for asking support questions.
Thank you for your interest in PHP.
string cancatination is done using . not , in PHP.
<?php
echo '0+0=' . (0+0) . "\n";
?>
Results in 0 on any platform.
------------------------------------------------------------------------
[2002-11-21 05:45:55] rvl@interchain.nl
Script:
<?
echo '0+0=', 0+0, "\n";
?>
Output of script on php 4.2.3:
0+0=4294967294
which is equal to 2^32-2
(Output of script on php 4.1.2 and 4.0.6:
0+0=4294967296
which is equal to 2^32).
In general, all simple additions and multiplications produce huge
numbers:
0+0=4294967294
0+1=4294967295
1+0=4294967295
1+1=4294967296
0-0=0
0-1=-1
1-0=1
1-1=0
0*0=3.5178585246345E+18
0*1=3.5178585265101E+18
1*0=3.5178585265101E+18
1*1=3.5178585283857E+18
0/1=0
1/1=1
2/1=2
2/2=1
Installation issues
# gcc -v
Reading specs from
/usr/local/lib/gcc-lib/rs6000-ibm-aix4.3.3.0/2.95.3/specs
gcc version 2.95.3 20010315 (release)
# make -v
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for rs6000-ibm-aix4.3.3.0
# tar -xf apache_1.3.20.tar
# cd apache_1.3.20
# ./configure --enable-module=most
# cd ..
# tar -xf php-4.2.3.tar
# cd php-4.2.3
# ./configure --without-mysql --with-apache=../apache_1.3.20
--enable-static --with-iodbc=/usr/local --enable-track-vars
# make
# make install
# cd ..
# cd apache_1.3.20
# configure --enable-module=most
--activate-module=src/modules/php4/libphp4.a
# make
# make install
I don't know if it is very relevant but the rs6000 on which aix4.3 is
running
is a 64bits machine. The c program
int main()
{
printf("long=%dbits\n",8*sizeof(long));
return 0;
}
outputs 'long=64bits' when compiled with 'cc -q64', while when
compiled
with 'gcc' it outputs 'long=32bits'.
Thanks very much in advance,
Rein van Vliet
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=20542&edit=1