From: phil dot lello at homecall dot co dot uk Operating system: cygwin (WinXP) PHP version: 5.2.1 PHP Bug Type: Compile Failure Bug description: Changes to TSRM cause builds to fail under cygwin
Description: ------------ Build fails under cygwin due to conflicting struct redefinitions. Note that I have verified 5.2.0 builds correctly from un-modified source. This issue appears to be due to changes to #ifdef's in TSRM under 5.2.1 Reproduce code: --------------- ./configure make Expected result: ---------------- php builds Actual result: -------------- php doesn't build: $ make /bin/sh /home/Administrator/src/php-5.2.1/libtool --silent --preserve-dup-deps --mode=compile gcc -I/home/Administrator/src/php-5.2.1/ext/pdo_sqlite/sqlite/src -DPDO_SQLITE_BUNDLED=1 -DSQLITE_OMIT_CURSOR -I/home/Administrator/src/php-5.2.1/ext -Iext/pdo_sqlite/ -I/home/Administrator/src/php-5.2.1/ext/pdo_sqlite/ -DPHP_ATOM_INC -I/home/Administrator/src/php-5.2.1/include -I/home/Administrator/src/php-5.2.1/main -I/home/Administrator/src/php-5.2.1 -I/usr/include/libxml2 -I/home/Administrator/src/php-5.2.1/ext/date/lib -I/home/Administrator/src/php-5.2.1/TSRM -I/home/Administrator/src/php-5.2.1/Zend -I/usr/include -g -O2 -c /home/Administrator/src/php-5.2.1/ext/pdo_sqlite/sqlite/src/date.c -o ext/pdo_sqlite/sqlite/src/date.lo In file included from /home/Administrator/src/php-5.2.1/Zend/../TSRM/TSRM.h:23, from /home/Administrator/src/php-5.2.1/Zend/zend_alloc.h:27, from /home/Administrator/src/php-5.2.1/Zend/zend.h:224, from /home/Administrator/src/php-5.2.1/main/php.h:34, from /home/Administrator/src/php-5.2.1/main/php_reentrancy.h:24, from /home/Administrator/src/php-5.2.1/ext/pdo_sqlite/sqlite/src/date.c:57: /home/Administrator/src/php-5.2.1/Zend/../TSRM/tsrm_config.w32.h:10:20: crtdbg.h: No such file or directory In file included from /home/Administrator/src/php-5.2.1/TSRM/tsrm_virtual_cwd.h:26, from /home/Administrator/src/php-5.2.1/main/php.h:409, from /home/Administrator/src/php-5.2.1/main/php_reentrancy.h:24, from /home/Administrator/src/php-5.2.1/ext/pdo_sqlite/sqlite/src/date.c:57: /home/Administrator/src/php-5.2.1/TSRM/tsrm_config_common.h:4:16: operator '|' has no right operand In file included from /home/Administrator/src/php-5.2.1/main/php.h:409, from /home/Administrator/src/php-5.2.1/main/php_reentrancy.h:24, from /home/Administrator/src/php-5.2.1/ext/pdo_sqlite/sqlite/src/date.c:57: /home/Administrator/src/php-5.2.1/TSRM/tsrm_virtual_cwd.h:47:20: direct.h: No such file or directory In file included from /home/Administrator/src/php-5.2.1/TSRM/tsrm_virtual_cwd.h:55, from /home/Administrator/src/php-5.2.1/main/php.h:409, from /home/Administrator/src/php-5.2.1/main/php_reentrancy.h:24, from /home/Administrator/src/php-5.2.1/ext/pdo_sqlite/sqlite/src/date.c:57: /home/Administrator/src/php-5.2.1/TSRM/readdir.h:10:1: warning: "_WIN32_WINNT" redefined In file included from /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/windows.h:48, from /home/Administrator/src/php-5.2.1/ext/pdo_sqlite/sqlite/src/os.h:55, from /home/Administrator/src/php-5.2.1/ext/pdo_sqlite/sqlite/src/date.c:51: /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/windef.h:20:1: warning: this is the location of the previous definition In file included from /home/Administrator/src/php-5.2.1/TSRM/tsrm_virtual_cwd.h:55, from /home/Administrator/src/php-5.2.1/main/php.h:409, from /home/Administrator/src/php-5.2.1/main/php_reentrancy.h:24, from /home/Administrator/src/php-5.2.1/ext/pdo_sqlite/sqlite/src/date.c:57: /home/Administrator/src/php-5.2.1/TSRM/readdir.h:26: error: `_MAX_FNAME' undeclared here (not in a function) In file included from /home/Administrator/src/php-5.2.1/main/php.h:409, from /home/Administrator/src/php-5.2.1/main/php_reentrancy.h:24, from /home/Administrator/src/php-5.2.1/ext/pdo_sqlite/sqlite/src/date.c:57: /home/Administrator/src/php-5.2.1/TSRM/tsrm_virtual_cwd.h:58: error: conflicting types for 'mode_t' /usr/include/cygwin/types.h:205: error: previous declaration of 'mode_t' was here In file included from /usr/include/dirent.h:6, from /home/Administrator/src/php-5.2.1/main/php_reentrancy.h:28, from /home/Administrator/src/php-5.2.1/ext/pdo_sqlite/sqlite/src/date.c:57: /usr/include/sys/dirent.h:21: error: redefinition of `struct dirent' /usr/include/sys/dirent.h:55: error: conflicting types for 'DIR' /home/Administrator/src/php-5.2.1/TSRM/readdir.h:38: error: previous declaration of 'DIR' was here /usr/include/sys/dirent.h:58: error: conflicting types for 'opendir' /home/Administrator/src/php-5.2.1/TSRM/readdir.h:41: error: previous declaration of 'opendir' was here /usr/include/sys/dirent.h:58: error: conflicting types for 'opendir' /home/Administrator/src/php-5.2.1/TSRM/readdir.h:41: error: previous declaration of 'opendir' was here /usr/include/sys/dirent.h:59: error: conflicting types for 'readdir' /home/Administrator/src/php-5.2.1/TSRM/readdir.h:42: error: previous declaration of 'readdir' was here /usr/include/sys/dirent.h:59: error: conflicting types for 'readdir' /home/Administrator/src/php-5.2.1/TSRM/readdir.h:42: error: previous declaration of 'readdir' was here /usr/include/sys/dirent.h:60: error: conflicting types for 'readdir_r' /home/Administrator/src/php-5.2.1/TSRM/readdir.h:43: error: previous declaration of 'readdir_r' was here /usr/include/sys/dirent.h:60: error: conflicting types for 'readdir_r' /home/Administrator/src/php-5.2.1/TSRM/readdir.h:43: error: previous declaration of 'readdir_r' was here /usr/include/sys/dirent.h:61: error: conflicting types for 'rewinddir' /home/Administrator/src/php-5.2.1/TSRM/readdir.h:45: error: previous declaration of 'rewinddir' was here /usr/include/sys/dirent.h:61: error: conflicting types for 'rewinddir' /home/Administrator/src/php-5.2.1/TSRM/readdir.h:45: error: previous declaration of 'rewinddir' was here /usr/include/sys/dirent.h:62: error: conflicting types for 'closedir' /home/Administrator/src/php-5.2.1/TSRM/readdir.h:44: error: previous declaration of 'closedir' was here /usr/include/sys/dirent.h:62: error: conflicting types for 'closedir' /home/Administrator/src/php-5.2.1/TSRM/readdir.h:44: error: previous declaration of 'closedir' was here make: *** [ext/pdo_sqlite/sqlite/src/date.lo] Error 1 -- Edit bug report at http://bugs.php.net/?id=40488&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=40488&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=40488&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=40488&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=40488&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=40488&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=40488&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=40488&r=needscript Try newer version: http://bugs.php.net/fix.php?id=40488&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=40488&r=support Expected behavior: http://bugs.php.net/fix.php?id=40488&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=40488&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=40488&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=40488&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=40488&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=40488&r=dst IIS Stability: http://bugs.php.net/fix.php?id=40488&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=40488&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=40488&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=40488&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=40488&r=mysqlcfg