use strict; use warnings; use Devel::CheckLib; our $debug ||= 0; my @headers = qw ( php_main.h ); my @incpath = qw( /usr/local/include /usr/local/include/php /usr/local/include/php/main /usr/local/include/php/TSRM /usr/local/include/php/Zend /usr/local/include/php/ext /usr/local/include/php/ext/date/lib ); check_lib_or_exit( header => \@headers, incpath => \@incpath, debug => $debug, ); __END__ #### $ perl -sl devel.checklib.pl Can't link/include 'php_main.h' $ perl -sl devel.checklib.pl -debug 1 # /usr/bin/gcc assertlibSu6peu8p.c -I/usr/local/include -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -o assertlib27VD0sdi In file included from /usr/local/include/php/Zend/zend_globals.h:28, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/local/include/php/Zend/zend_globals_macros.h: In function `BEGIN_EXTERN_C':/usr/local/include/php/Zend/zend_globals_macros.h:37: error: storage class specified for parameter `ZEND_API' /usr/local/include/php/Zend/zend_globals_macros.h:37: error: syntax error before "struct" #### /usr/local/include/php/Zend/zend_globals_macros.h:47: error: storage class specified for parameter `ZEND_API' /usr/local/include/php/Zend/zend_globals_macros.h:47: error: redefinition of parameter 'ZEND_API' /usr/local/include/php/Zend/zend_globals_macros.h:37: error: previous definition of 'ZEND_API' was here /usr/local/include/php/Zend/zend_globals_macros.h:47: error: syntax error before "zend_executor_globals" /usr/local/include/php/Zend/zend_globals_macros.h:56: error: storage class specified for parameter `ZEND_API' /usr/local/include/php/Zend/zend_globals_macros.h:56: error: redefinition of parameter 'ZEND_API' /usr/local/include/php/Zend/zend_globals_macros.h:47: error: previous definition of 'ZEND_API' was here /usr/local/include/php/Zend/zend_globals_macros.h:56: error: syntax error before "zend_scanner_globals" /usr/local/include/php/Zend/zend_globals_macros.h:66: error: storage class specified for parameter `ZEND_API' /usr/local/include/php/Zend/zend_globals_macros.h:66: error: redefinition of parameter 'ZEND_API' /usr/local/include/php/Zend/zend_globals_macros.h:56: error: previous definition of 'ZEND_API' was here /usr/local/include/php/Zend/zend_globals_macros.h:66: error: syntax error before "zend_scanner_globals" In file included from /usr/local/include/php/Zend/zend_globals.h:30, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/local/include/php/Zend/zend_stack.h:28: error: syntax error before '}' token In file included from /usr/local/include/php/Zend/zend_globals.h:31, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/local/include/php/Zend/zend_ptr_stack.h:27: error: redefinition of parameter 'elements' /usr/local/include/php/Zend/zend_stack.h:27: error: previous definition of 'elements' was here /usr/local/include/php/Zend/zend_ptr_stack.h:29: error: syntax error before '}' token In file included from /usr/include/sys/types.h:31, from /usr/local/include/php/Zend/zend_hash.h:25, from /usr/local/include/php/Zend/zend_globals.h:32, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/include/bits/types.h:34: error: storage class specified for parameter `__u_char' /usr/include/bits/types.h:35: error: storage class specified for parameter `__u_short' /usr/include/bits/types.h:36: error: storage class specified for parameter `__u_int' /usr/include/bits/types.h:37: error: storage class specified for parameter `__u_long' /usr/include/bits/types.h:40: error: storage class specified for parameter `__int8_t' /usr/include/bits/types.h:41: error: storage class specified for parameter `__uint8_t' /usr/include/bits/types.h:42: error: storage class specified for parameter `__int16_t' /usr/include/bits/types.h:43: error: storage class specified for parameter `__uint16_t' /usr/include/bits/types.h:44: error: storage class specified for parameter `__int32_t' /usr/include/bits/types.h:45: error: storage class specified for parameter `__uint32_t' /usr/include/bits/types.h:50: error: syntax error before "__extension__" In file included from /usr/include/sys/types.h:31, from /usr/local/include/php/Zend/zend_hash.h:25, from /usr/local/include/php/Zend/zend_globals.h:32, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/include/bits/types.h:186: error: storage class specified for parameter `__off64_t' /usr/include/bits/types.h:186: error: syntax error before "__loff_t" /usr/include/bits/types.h:187: error: storage class specified for parameter `__quad_t' /usr/include/bits/types.h:187: error: syntax error before '*' token /usr/include/bits/types.h:188: error: storage class specified for parameter `__caddr_t' /usr/include/bits/types.h:191: error: syntax error before "__extension__" In file included from /usr/local/include/php/Zend/zend_hash.h:25, from /usr/local/include/php/Zend/zend_globals.h:32, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/include/sys/types.h:35: error: storage class specified for parameter `__u_char' /usr/include/sys/types.h:35: error: conflicting types for '__u_char' /usr/include/bits/types.h:34: error: previous definition of '__u_char' was here /usr/include/sys/types.h:35: error: syntax error before "u_char" /usr/include/sys/types.h:36: error: storage class specified for parameter `__u_short' /usr/include/sys/types.h:36: error: conflicting types for '__u_short' /usr/include/bits/types.h:35: error: previous definition of '__u_short' was here/usr/include/sys/types.h:36: error: syntax error before "u_short" /usr/include/sys/types.h:37: error: storage class specified for parameter `__u_int' /usr/include/sys/types.h:37: error: conflicting types for '__u_int' /usr/include/bits/types.h:36: error: previous definition of '__u_int' was here /usr/include/sys/types.h:37: error: syntax error before "u_int" /usr/include/sys/types.h:38: error: storage class specified for parameter `__u_long' /usr/include/sys/types.h:38: error: conflicting types for '__u_long' /usr/include/bits/types.h:37: error: previous definition of '__u_long' was here /usr/include/sys/types.h:38: error: syntax error before "u_long" /usr/include/sys/types.h:39: error: storage class specified for parameter `__quad_t' /usr/include/sys/types.h:39: error: redefinition of parameter '__quad_t' /usr/include/bits/types.h:187: error: previous definition of '__quad_t' was here/usr/include/sys/types.h:39: error: syntax error before "quad_t" /usr/include/sys/types.h:40: error: storage class specified for parameter `__u_quad_t' /usr/include/sys/types.h:40: error: syntax error before "u_quad_t" /usr/include/sys/types.h:41: error: storage class specified for parameter `__fsid_t' /usr/include/sys/types.h:41: error: syntax error before "fsid_t" /usr/include/sys/types.h:46: error: storage class specified for parameter `__loff_t' /usr/include/sys/types.h:46: error: syntax error before "loff_t" /usr/include/sys/types.h:50: error: storage class specified for parameter `__ino_t' /usr/include/sys/types.h:50: error: syntax error before "ino_t" /usr/include/sys/types.h:62: error: storage class specified for parameter `__dev_t' /usr/include/sys/types.h:62: error: syntax error before "dev_t" /usr/include/sys/types.h:67: error: storage class specified for parameter `__gid_t' /usr/include/sys/types.h:67: error: syntax error before "gid_t" /usr/include/sys/types.h:72: error: storage class specified for parameter `__mode_t' /usr/include/sys/types.h:72: error: syntax error before "mode_t" /usr/include/sys/types.h:77: error: storage class specified for parameter `__nlink_t' /usr/include/sys/types.h:77: error: syntax error before "nlink_t" /usr/include/sys/types.h:82: error: storage class specified for parameter `__uid_t' /usr/include/sys/types.h:82: error: syntax error before "uid_t" /usr/include/sys/types.h:88: error: storage class specified for parameter `__off_t' /usr/include/sys/types.h:88: error: syntax error before "off_t" /usr/include/sys/types.h:100: error: storage class specified for parameter `__pid_t' /usr/include/sys/types.h:100: error: syntax error before "pid_t" /usr/include/sys/types.h:105: error: storage class specified for parameter `__id_t' /usr/include/sys/types.h:105: error: syntax error before "id_t" /usr/include/sys/types.h:110: error: storage class specified for parameter `__ssize_t' /usr/include/sys/types.h:110: error: syntax error before "ssize_t" /usr/include/sys/types.h:116: error: storage class specified for parameter `__daddr_t' /usr/include/sys/types.h:116: error: syntax error before "daddr_t" /usr/include/sys/types.h:117: error: storage class specified for parameter `__caddr_t' /usr/include/sys/types.h:117: error: conflicting types for '__caddr_t' /usr/include/bits/types.h:188: error: previous definition of '__caddr_t' was here /usr/include/sys/types.h:117: error: syntax error before "caddr_t" /usr/include/sys/types.h:123: error: storage class specified for parameter `__key_t' /usr/include/sys/types.h:123: error: syntax error before "key_t" In file included from /usr/include/sys/types.h:133, from /usr/local/include/php/Zend/zend_hash.h:25, from /usr/local/include/php/Zend/zend_globals.h:32, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/include/time.h:76: error: storage class specified for parameter `__time_t' /usr/include/time.h:76: error: syntax error before "time_t" /usr/include/time.h:92: error: storage class specified for parameter `__clockid_t' /usr/include/time.h:92: error: syntax error before "clockid_t" /usr/include/time.h:104: error: storage class specified for parameter `__timer_t' /usr/include/time.h:104: error: syntax error before "timer_t" In file included from /usr/local/include/php/Zend/zend_hash.h:25, from /usr/local/include/php/Zend/zend_globals.h:32, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/include/sys/types.h:151: error: storage class specified for parameter `ulong' /usr/include/sys/types.h:152: error: storage class specified for parameter `ushort' /usr/include/sys/types.h:153: error: storage class specified for parameter `uint' /usr/include/sys/types.h:191: error: storage class specified for parameter `int8_t' /usr/include/sys/types.h:192: error: storage class specified for parameter `int16_t' /usr/include/sys/types.h:193: error: storage class specified for parameter `int32_t' /usr/include/sys/types.h:194: error: storage class specified for parameter `int64_t' /usr/include/sys/types.h:197: error: storage class specified for parameter `u_int8_t' /usr/include/sys/types.h:198: error: storage class specified for parameter `u_int16_t' /usr/include/sys/types.h:199: error: storage class specified for parameter `u_int32_t' /usr/include/sys/types.h:200: error: storage class specified for parameter `u_int64_t' /usr/include/sys/types.h:202: error: storage class specified for parameter `register_t' In file included from /usr/include/sys/types.h:216, from /usr/local/include/php/Zend/zend_hash.h:25, from /usr/local/include/php/Zend/zend_globals.h:32, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/include/sys/select.h:38: error: storage class specified for parameter `sigset_t' In file included from /usr/include/sys/select.h:44, from /usr/include/sys/types.h:216, from /usr/local/include/php/Zend/zend_hash.h:25, from /usr/local/include/php/Zend/zend_globals.h:32, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/include/time.h:120: error: syntax error before "__time_t" /usr/include/time.h:122: error: syntax error before '}' token In file included from /usr/include/sys/select.h:46, from /usr/include/sys/types.h:216, from /usr/local/include/php/Zend/zend_hash.h:25, from /usr/local/include/php/Zend/zend_globals.h:32, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/include/bits/time.h:71: error: syntax error before "__time_t" In file included from /usr/include/sys/types.h:216, from /usr/local/include/php/Zend/zend_hash.h:25, from /usr/local/include/php/Zend/zend_globals.h:32, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/include/sys/select.h:49: error: storage class specified for parameter `__suseconds_t' /usr/include/sys/select.h:49: error: syntax error before "suseconds_t" /usr/include/sys/select.h:55: error: storage class specified for parameter `__fd_mask' /usr/include/sys/select.h:75: error: syntax error before "__fd_mask" /usr/include/sys/select.h:85: error: storage class specified for parameter `__fd_mask' /usr/include/sys/select.h:85: error: conflicting types for '__fd_mask' /usr/include/sys/select.h:55: error: previous definition of '__fd_mask' was here/usr/include/sys/select.h:85: error: syntax error before "fd_mask" /usr/include/sys/select.h:109: error: syntax error before "fd_set" /usr/include/sys/select.h:112: error: storage class specified for parameter `select' In file included from /usr/local/include/php/Zend/zend_hash.h:25, from /usr/local/include/php/Zend/zend_globals.h:32, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/include/sys/types.h:235: error: storage class specified for parameter `__fsblkcnt_t' /usr/include/sys/types.h:235: error: syntax error before "fsblkcnt_t" /usr/include/sys/types.h:239: error: storage class specified for parameter `__fsfilcnt_t' /usr/include/sys/types.h:239: error: syntax error before "fsfilcnt_t" In file included from /usr/include/sys/types.h:266, from /usr/local/include/php/Zend/zend_hash.h:25, from /usr/local/include/php/Zend/zend_globals.h:32, from /usr/local/include/php/main/php_main.h:25, from assertlibSu6peu8p.c:1: /usr/include/bits/pthreadtypes.h:35: error: storage class specified for parameter `_pthread_descr' /usr/include/bits/pthreadtypes.h:48: error: syntax error before "size_t" /usr/include/bits/pthreadtypes.h:51: error: syntax error before "size_t" /usr/include/bits/pthreadtypes.h:66: error: syntax error before "_pthread_descr"/usr/include/bits/pthreadtypes.h:68: error: `__pthread_cond_align_t' undeclared (first use in this function) /usr/include/bits/pthreadtypes.h:68: error: (Each undeclared identifier is reported only once /usr/include/bits/pthreadtypes.h:68: error: for each function it appears in.) /usr/include/bits/pthreadtypes.h:68: confused by earlier errors, bailing out Can't link/include 'php_main.h'