I encountered two make errors in phpng last night. Both mysql related.
System: Ubuntu 12.04.4 LTS (GNU/Linux 3.8.0-37-generic x86_64)
I used the configure from https://wiki.php.net/phpng with tweaks for my
system.
./configure \
--prefix=$HOME/tmp/usr \
--with-config-file-path=$HOME/tmp/usr/etc \
--enable-mbstring \
--enable-zip \
--enable-bcmath \
--enable-pcntl \
--enable-ftp \
--enable-exif \
--enable-calendar \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-curl \
--with-mcrypt \
--with-iconv \
--with-gmp \
--with-pspell \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-xpm-dir \
--with-freetype-dir \
--with-t1lib \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-openssl \
--with-mysql \
--with-gettext \
--with-zlib \
--with-bz2 \
--with-recode \
--with-mysqli=/usr/bin/mysql_config \
--with-libdir=/lib/x86_64-linux-gnu
First:
/root/tmp/php-src/ext/pdo_mysql/mysql_driver.c: In function
‘pdo_mysql_get_attribute’:
/root/tmp/php-src/ext/pdo_mysql/mysql_driver.c:447:47: error: macro
"ZVAL_STRINGL" passed 4 arguments, but takes just 3
/root/tmp/php-src/ext/pdo_mysql/mysql_driver.c:447:5: error:
‘ZVAL_STRINGL’ undeclared (first use in this function)
/root/tmp/php-src/ext/pdo_mysql/mysql_driver.c:447:5: note: each
undeclared identifier is reported only once for each function it appears in
make: *** [ext/pdo_mysql/mysql_driver.lo] Error 1
I removed PDO mysql support since I don't need it in my application and
continued.
=========================================================
The second one is mysqlnd related. I saw on the phpng page that it is
not supported. I did not add it to configure. I am not sure why it tried
to build.
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c: In function
‘php_mysqlnd_conn_data_set_client_option_pub’:
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2419:5: warning: passing
argument 2 of ‘zend_hash_del’ from incompatible pointer type [enabled by
default]
/root/tmp/php-src/Zend/zend_hash.h:127:14: note: expected ‘struct
zend_string *’ but argument is of type ‘const char * const’
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2419:5: error: too many
arguments to function ‘zend_hash_del’
/root/tmp/php-src/Zend/zend_hash.h:127:14: note: declared here
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c: In function
‘php_mysqlnd_conn_data_set_client_option_2d_pub’:
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2495:5: warning: passing
argument 3 of ‘_zend_hash_init’ from incompatible pointer type [enabled
by default]
/root/tmp/php-src/Zend/zend_hash.h:63:15: note: expected ‘dtor_func_t’
but argument is of type ‘void (*)(void *)’
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2503:97: error: macro
"zend_hash_update" passed 6 arguments, but takes just 3
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2503:5: error:
‘zend_hash_update’ undeclared (first use in this function)
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2503:5: note: each undeclared
identifier is reported only once for each function it appears in
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c: In function
‘php_mysqlnd_conn_data_tx_cor_options_to_string_pub’:
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2672:10: error: ‘smart_str’ has
no member named ‘len’
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2677:10: error: ‘smart_str’ has
no member named ‘len’
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2684:10: error: ‘smart_str’ has
no member named ‘len’
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2689:10: error: ‘smart_str’ has
no member named ‘len’
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c: In function
‘php_mysqlnd_conn_data_tx_commit_or_rollback_pub’:
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2752:4: warning: excess elements
in struct initializer [enabled by default]
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2752:4: warning: (near
initialization for ‘tmp_str’) [enabled by default]
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2762:17: error: ‘smart_str’ has
no member named ‘c’
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2762:17: error: ‘smart_str’ has
no member named ‘c’
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c: In function
‘php_mysqlnd_conn_data_tx_begin_pub’:
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2796:4: warning: excess elements
in struct initializer [enabled by default]
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2796:4: warning: (near
initialization for ‘tmp_str’) [enabled by default]
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2798:16: error: ‘smart_str’ has
no member named ‘len’
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2810:17: error: ‘smart_str’ has
no member named ‘len’
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2815:17: error: ‘smart_str’ has
no member named ‘len’
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2826:30: error: ‘smart_str’ has
no member named ‘c’
/root/tmp/php-src/ext/mysqlnd/mysqlnd.c:2826:30: error: ‘smart_str’ has
no member named ‘c’
make: *** [ext/mysqlnd/mysqlnd.lo] Error 1
I stopped here since I was not sure why this was trying to build when
enable-mysqlnd was not on my configure line.