ID:               28157
 Comment by:       Bjorn dot Wiberg at its dot uu dot se
 Reported By:      ralf at kuerbis dot org
 Status:           Open
 Bug Type:         Compile Failure
 Operating System: Solaris 9, AIX, BSD
 PHP Version:      5CVS-2004-04-26 (dev)
 New Comment:

Hi again!

However, almost all tests ('make test') fail with a "bailout" error:


================================================================================
/usr/local/src/php5-200405270430/tests/classes/array_access_003.phpt
================================================================================

---- EXPECTED OUTPUT
object::offsetGet(1)

Strict Standards: Only variable references should be returned by
reference in %sarray_access_003.php on line %d
string(6) "fooBar"
object::offsetGet(2)
int(1)
object::offsetGet(2)
object::offsetGet(2)
int(2)
===DONE===
---- ACTUAL OUTPUT
object::offsetGet(1)

Strict Standards: Only variable references should be returned by
reference in
/usr/local/src/php5-200405270430/tests/classes/array_access_003.php on
line 15
string(6) "fooBar"
object::offsetGet(2)
int(1)
object::offsetGet(2)
object::offsetGet(2)
int(2)
===DONE===
/usr/local/src/php5-200405270430/main/main.c(1699) : Bailed out without
a bailout address!
---- FAILED


I'd of course appreciate any clues as to what might cause this.

Best regards,
Björn


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

[2004-05-28 15:43:28] Bjorn dot Wiberg at its dot uu dot se

Oops, small type, "-D_ALL_SOURCE".

Bestregards,
Björn

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

[2004-05-28 15:32:33] Bjorn dot Wiberg at its dot uu dot se

Hi!

Thanks for your reply!

Adding -D_ALL_SOURCES to the CPPFLAGS variable when running configure
solved the problem. I've investigated /usr/include/sys/types.h, where
longlong_t is supposed to be defined, but the definition depends on
_LONG_LONG, which I can't find getting set anywhere...

#ifdef _LONG_LONG
typedef long long longlong_t;         
typedef unsigned long long u_longlong_t;
#endif /* _LONG_LONG */

Best regards,
Björn

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

[2004-05-28 13:24:16] [EMAIL PROTECTED]

Bjoern:
Please try to find out what causes longlong_t to be defined on your
system and try to trace it back to one of the _XOPEN_SOURCE style
definitions.  I heard someone suggest that defining _ALL_SOURCE helped
on AIX, could you please try that too.
I tried to email you directly the other day, but the email address you
have supplied appears to be invalid.

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

[2004-05-27 08:59:35] Bjorn dot Wiberg at its dot uu dot se

Unfortunately the problem persists on AIX 5.2.0.0 with the
php5-200405270430 snapshot.

The errors begin with:

--- snip ---
In file included from
/usr/local/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/includ
e/sys/wait.h:62,
                 from
/usr/local/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/includ
e/stdlib.h:314,
                 from
/usr/local/src/php5-200405270430/main/php_config.h:2437,
                 from
/usr/local/src/php5-200405270430/Zend/zend_config.h:1,
                 from /usr/local/src/php5-200405270430/Zend/zend.h:53,
                 from /usr/local/src/php5-200405270430/main/php.h:34,
                 from
/usr/local/src/php5-200405270430/ext/standard/proc_open.c:
25:
/usr/include/sys/resource.h:216: error: parse error before
"longlong_t"
/usr/include/sys/resource.h:218: error: parse error before "ru_idrss"
/usr/include/sys/resource.h:219: error: parse error before "ru_isrss"
/usr/include/sys/resource.h:220: error: parse error before "ru_minflt"
/usr/include/sys/resource.h:221: error: parse error before "ru_majflt"
/usr/include/sys/resource.h:222: error: parse error before "ru_nswap"
/usr/include/sys/resource.h:223: error: parse error before
"ru_inblock"
/usr/include/sys/resource.h:224: error: parse error before
"ru_oublock"
/usr/include/sys/resource.h:225: error: parse error before "ru_msgsnd"
/usr/include/sys/resource.h:226: error: parse error before "ru_msgrcv"
/usr/include/sys/resource.h:227: error: parse error before
"ru_nsignals"
/usr/include/sys/resource.h:228: error: parse error before "ru_nvcsw"
/usr/include/sys/resource.h:229: error: parse error before "ru_nivcsw"
In file included from
/usr/local/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/includ
e/sys/signal.h:378,
                 from
/usr/local/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/includ
e/sys/wait.h:66,
                 from
/usr/local/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/includ
e/stdlib.h:314,
                 from
/usr/local/src/php5-200405270430/main/php_config.h:2437,
                 from
/usr/local/src/php5-200405270430/Zend/zend_config.h:1,
                 from /usr/local/src/php5-200405270430/Zend/zend.h:53,
                 from /usr/local/src/php5-200405270430/main/php.h:34,
                 from
/usr/local/src/php5-200405270430/ext/standard/proc_open.c:
25:
/usr/include/sys/context.h:169: error: parse error before "sigset64_t"
/usr/include/sys/context.h:172: error: parse error before '}' token
In file included from
/usr/local/src/php5-200405270430/Zend/zend.h:222,
                 from /usr/local/src/php5-200405270430/main/php.h:34,
                 from
/usr/local/src/php5-200405270430/ext/standard/proc_open.c:
25:
/usr/local/src/php5-200405270430/Zend/zend_alloc.h:41: error: parse
error before
 "uint"
/usr/local/src/php5-200405270430/Zend/zend_alloc.h:41: warning: no
semicolon at 
end of struct or union
/usr/local/src/php5-200405270430/Zend/zend_alloc.h:44: error: parse
error before
 "orig_lineno"
/usr/local/src/php5-200405270430/Zend/zend_alloc.h:44: warning: type
defaults to
 `int' in declaration of `orig_lineno'
/usr/local/src/php5-200405270430/Zend/zend_alloc.h:44: warning: data
definition 
has no type or storage class
/usr/local/src/php5-200405270430/Zend/zend_alloc.h:53: error: parse
error before
 ':' token
/usr/local/src/php5-200405270430/Zend/zend_alloc.h:54: error: parse
error before
 ':' token
--- snip ---

The following are the configure directives used (from config.nice):

CPPFLAGS='-I/usr/local/include' \
LDFLAGS='-L/lib -L/opt/freeware/lib -L/usr/local/lib' \
CC='/usr/local/bin/gcc' \
'./configure' \
'--disable-cgi' \
'--disable-cli' \
'--enable-calendar' \
'--enable-dba' \
'--enable-exif' \
'--enable-embedded-mysqli' \
'--enable-debug' \
'--enable-gd-jis-conv' \
'--enable-gd-native-ttf' \
'--enable-mbstring' \
'--enable-memory-limit' \
'--enable-versioning' \
'--enable-zend-multibyte' \
'--prefix=/apache/php' \
'--with-apxs2=/apache/bin/apxs' \
'--with-apxs2filter=/apache/bin/apxs' \
'--with-gd' \
'--with-gdbm' \
'--with-gettext' \
'--with-inifile' \
'--with-jpeg-dir' \
'--with-ldap' \
'--with-libxml-dir' \
'--with-mime-magic' \
'--with-mnogosearch' \
'--with-mysql=/usr/local/mysql' \
'--with-openssl=/opt/freeware' \
'--with-png-dir' \
'--with-tiff-dir' \
'--with-zlib' \
'--with-zlib-dir' \
'--without-pear' \
"$@"

The /usr/include/sys/resource.h file, around line 216, contains:
/*                                                                     
        
 * The structure reflects struct rusage in 64-bit mode                 
        
 * and is 64-bit size invariant.                                       
        
 */
struct  trusage64
{
        struct timeval64 ru_utime;      /* user time used */
        struct timeval64 ru_stime;      /* system time used */
        longlong_t       ru_maxrss;
        longlong_t       ru_ixrss;      /* integral shared memory size
*/
        longlong_t       ru_idrss;      /* integral unshared data " */
        longlong_t       ru_isrss;      /* integral unshared stack "
*/
        longlong_t       ru_minflt;     /* page reclaims */
        longlong_t       ru_majflt;     /* page faults */
        longlong_t       ru_nswap;      /* swaps */
        longlong_t       ru_inblock;    /* block input operations */
        longlong_t       ru_oublock;    /* block output operations */
        longlong_t       ru_msgsnd;     /* messages sent */
        longlong_t       ru_msgrcv;     /* messages received */
        longlong_t       ru_nsignals;   /* signals received */
        longlong_t       ru_nvcsw;      /* voluntary context switches
*/
        longlong_t       ru_nivcsw;     /* involuntary " */
};

The /usr/include/sys/context.h file, around line 169, contains:

#if defined(_LONG_LONG) || defined(__64BIT__)
/*                                                                     
        
 * Kernel declaration of sigcontext for 64-bit process. this assumes   
        
 * int is 4-bytes. 32-bit and 64-bit API both use the sigcontext above.
        
 * with sigset_t for 64-bits defined as two ints.                      
        
 */
struct sigcontext64 {
        int                sc_onstack;  /* sigstack state to restore
*/
        sigset64_t      sc_mask;        /* signal mask to restore */
        int                sc_uerror;   /* u_error to restore */
        struct __context64 sc_context;  /* 64-bit state         */
};

Finally, Zend/zend_alloc.h around line 41 contains:

typedef struct _zend_mem_header {
#if ZEND_DEBUG
    long magic;
    char *filename;
    uint lineno;
    int reported;
    char *orig_filename;
    uint orig_lineno;
# ifdef ZTS
    THREAD_T thread_id;
# endif
#endif
#if ZEND_DEBUG || !defined(ZEND_MM)
    struct _zend_mem_header *pNext;
    struct _zend_mem_header *pLast;
#endif
    unsigned int size:31;
    unsigned int cached:1;
} zend_mem_header;

Best regards,
Björn

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

[2004-05-26 17:00:55] ralf at kuerbis dot org

Hi !

The newer snapshots are working with Solaris 9. 

Best regards,
   Ralf

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

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

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

Reply via email to