ID:               20542
 User updated by:  [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-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] [EMAIL PROTECTED]

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] [EMAIL PROTECTED]

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] [EMAIL PROTECTED]

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] [EMAIL PROTECTED]

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] [EMAIL PROTECTED]

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

Reply via email to