ID:               31324
 User updated by:  phpbug at tore dot cc
 Reported By:      phpbug at tore dot cc
-Status:           Bogus
+Status:           Open
 Bug Type:         Strings related
 Operating System: Solaris 10
 PHP Version:      5.0.2
 New Comment:

Are 64bit processors not supported by php?
Which machine architecture is 'my system'?

The php is compiled with gcc2 AND gcc3. With solaris 9 AND solaris 10.
The same trouble occurs.
So I need to have the code for 'strlen' in php extracted before I can
figure out where the source for the trouble is.

A simple C-program using string.h's strlen cause no troule at all.


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

[2004-12-29 21:42:53] [EMAIL PROTECTED]

Sounds like either a compiler or libc bug. I cannot replicate this on
my systems either.

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

[2004-12-29 19:13:28] phpbug at tore dot cc

I might add that I tried php-5.0.3 on an intel-based solaris 10 machine
and there were no problems with the strlen.

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

[2004-12-29 07:34:41] phpbug at tore dot cc

I have used gcc2 and gcc3 to compile.
The machine is a sparc.
The problem occurs on solaris 9 and solaris 10.
If you suspect that this is a solaris problem, can you extract the code
for 'strlen' in php. I could make some tests in C....

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

[2004-12-28 23:59:37] [EMAIL PROTECTED]

It still works fine for me on Linux. Which compiler did you use to
compile PHP (gcc or sun workshop), and what kind of platform do you
use? intel (32/64), sparc...

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

[2004-12-28 23:40:36] phpbug at tore dot cc

Sorry, my mistake!
It seems to work on one char long strings.
I made a better script (still avoiding loops...).

<?php
$s=pack("C*",0x8e,0x8f);
$t=pack("C*",0x8e);
$u=pack("C*",0x8e,0x8f,0x90);
print "The variable s has the length: " . strlen($s) . "\n";
print "The variable t has the length: " . strlen($t) . "\n";
print "The variable u has the length: " . strlen($u) . "\n";
?>


Result:
The variable s has the length: 1 
The variable t has the length: 1 
The variable u has the length: 2

The result should be:
The variable s has the length: 2 
The variable t has the length: 1 
The variable u has the length: 3

Since s=2 chars, t=1 char and u 3 chars long.

Lets try another test with 7 bit chars.

<?php
$s=pack("C*",0x30,0x31);
$t=pack("C*",0x30);
$u=pack("C*",0x30,0x31,0x32);
print "The variable s has the length: " . strlen($s) . "\n";
print "The variable t has the length: " . strlen($t) . "\n";
print "The variable u has the length: " . strlen($u) . "\n";
?>

Result:
The variable s has the length: 2 
The variable t has the length: 1 
The variable u has the length: 3

As expected. No problem with low values on the chars.

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

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/31324

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

Reply via email to