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'