|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2004-12-16 12:46 UTC] strube at physik3 dot gwdg dot de
Description: ------------ Compilation of zend_strtod.c fails in Solaris 7 with Sun Workshop 5.0 compiler. There are two reasons: (1) IEEE_*_ENDIAN does not get defined. (2) line 246: syntax error before or at: u_int32_t As for (2), this is almost identical to Bug #30779, but (1) is not reported there. My ad-hoc patch: *** Zend/zend_strtod.c.ORI Tue Dec 14 09:35:26 2004 --- Zend/zend_strtod.c Thu Dec 16 12:21:54 2004 *************** *** 95,101 **** static char *rcsid = "$OpenBSD: strtod.c,v 1.19 2004/02/03 16:52:11 drahn Exp $"; #endif /* LIBC_SCCS and not lint */ ! #if defined(__m68k__) || defined(__sparc__) || defined(__i386__) || \ defined(__mips__) || defined(__ns32k__) || defined(__alpha__) || \ defined(__powerpc__) || defined(__ppc__) || defined(__m88k__) || \ defined(__hppa__) || defined(__x86_64__) || (defined(__arm__) && \ --- 95,108 ---- static char *rcsid = "$OpenBSD: strtod.c,v 1.19 2004/02/03 16:52:11 drahn Exp $"; #endif /* LIBC_SCCS and not lint */ ! #if defined(sun) || defined(__sun) ! #include <sys/isa_defs.h> ! #ifdef _BIG_ENDIAN ! #define IEEE_BIG_ENDIAN ! #else ! #define IEEE_LITTLE_ENDIAN ! #endif ! #elif defined(__m68k__) || defined(__sparc__) || defined(__i386__) || \ defined(__mips__) || defined(__ns32k__) || defined(__alpha__) || \ defined(__powerpc__) || defined(__ppc__) || defined(__m88k__) || \ defined(__hppa__) || defined(__x86_64__) || (defined(__arm__) && \ *************** *** 127,133 **** #define IEEE_LITTLE_ENDIAN #endif ! #if defined(__sparc__) || defined(__ppc__) #define u_int32_t uint32_t #endif --- 134,140 ---- #define IEEE_LITTLE_ENDIAN #endif ! #if defined(__sparc__) || defined(__sparc) || defined(__ppc__) #define u_int32_t uint32_t #endif PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 08 07:00:02 2025 UTC |
I tested compiling zend_strtod.c from php4-STABLE-200412210730 in Solaris 7 SPARC and Solaris 9_x86 with Sun cc and gcc. All compilations succeed, but in x86, still IEEE_BIG_ENDIAN is erroneously defined. Fix line 104: #ifdef WORDS_BIGENDIAN must be #if WORDS_BIGENDIAN because it is either 1 or 0. Also, on those architectures for which subsequent #define IEEE_..._ENDIAN occur (lines 116 and 126; not in Solaris), there will be warnings or errors concerning redefinition of IEEE_..._ENDIAN (not in Solaris) or failure in the test of line 226 due to definition of both IEEE_{BIG,LITTLE}_ENDIAN. I cannot test on those architectures myself.