ID: 31121
Updated by: sniper@php.net
Reported By: strube at physik3 dot gwdg dot de
-Status: Assigned
+Status: Feedback
Bug Type: Compile Failure
Operating System: Solaris 7 SPARC
PHP Version: 4.3.10
Assigned To: derick
New Comment:
Please try using this CVS snapshot:
http://snaps.php.net/php4-STABLE-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-STABLE-latest.zip
Previous Comments:
------------------------------------------------------------------------
[2004-12-17 14:18:07] strube at physik3 dot gwdg dot de
I now tested compilation of zend_strtod.c from snapshot
php4-STABLE-200412171130. It works on Solaris 7 SPARC with gcc. It does
not work with Sun Workshop/Forte/SunONE cc, since the architecture
macros are gcc specific. It also does not work on Solaris 9_x86, even
with gcc; although gcc compiles without error, IEEE_BIG_ENDIAN is
erroneously assigned (because the test #if BYTE_ORDER == BIG_ENDIAN
does not make sense in Solaris). All this could have been deduced from
my previous comments.
------------------------------------------------------------------------
[2004-12-17 13:00:29] derick@php.net
We had some problems with our snapshots, the next one (9:30 GMT) should
have the updated files. If you can try those, please do so.
------------------------------------------------------------------------
[2004-12-17 09:46:09] strube at physik3 dot gwdg dot de
I just found that main/php_config.h already contains the
big/little-endian information in WORDS_BIGENDIAN. Why don't you simply
include this and test this macro?
------------------------------------------------------------------------
[2004-12-17 09:37:59] strube at physik3 dot gwdg dot de
I tried php4-STABLE-latest.tar.gz, i.e. php4-STABLE-200412170730. The
zend_strtod.c therein is identical to that of the official 4.3.10
release. Also the configure script is unchanged (apart of the
EXTRA_VERSION). Thus this does not fix anything.
As a general remark, architecture macros like __sparc__ and __i386__
are gcc specific. Suns Workshop/Forte/SunONE compilers define __sparc
and __i386, respectively, for the architecture. (Likewise, the SGI IRIX
compilers do not define __mips__). Also Solaris does not define
BYTE_ORDER and BIG_ENDIAN (or LITTLE_ENDIAN)in sys/types.h (only in
arpa/nameser_compat.h, not normally included) but _BIG_ENDIAN (or
_LITTLE_ENDIAN) in sys/isa_defs.h, also included by sys/types.h.
Instead of using [_]BYTE_ORDER, the big/little decision could have been
directly based on the architectures.
------------------------------------------------------------------------
[2004-12-16 19:59:35] derick@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php4-STABLE-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-STABLE-latest.zip
Something similar is in CVS right now, can you try the latest snapshot
please?
------------------------------------------------------------------------
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/31121
--
Edit this bug report at http://bugs.php.net/?id=31121&edit=1