Bug #65427 [Com]: php fails to build on Solaris with --enable-sockets

From: Date: Mon, 14 Apr 2014 19:14:24 +0000
Subject: Bug #65427 [Com]: php fails to build on Solaris with --enable-sockets
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-185248@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=65427&edit=1 ID: 65427 Comment by: lsdejones at gmail dot com Reported by: eugene at zhegan dot in Summary: php fails to build on Solaris with --enable-sockets Status: Open Type: Bug Package: Compile Failure Operating System: Solaris PHP Version: 5.5.1 Block user comment: N Private report: N New Comment: Trying to build php 5.5.11 on Solaris 10. Build fails with --enable-sockets here too. Configure: ========== ./configure --prefix=/usr/local/php-5.5.11 --with-config-file-path=/usr/local/php-5.5.11/lib --enable-libxml --with-libxml-dir=/usr/local --with-zlib=/usr/local --with-apxs2=/usr/local/httpd-2.4.9/bin/apxs --without-pgsql --with-zlib-dir=/usr/local/lib --enable-mbstring --enable-exif --enable-sockets --enable-soap --with-png-dir=/usr/local/lib --with-curl=/usr/local --with-ldap=/usr/local --with-openssl=/usr/local/openssl-1.0.1g --with-gettext --with-pcre-dir=/usr/local/pcre --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local --with-xsl --with-gd --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/local/lib Added to Makefile: ================== CFLAGS_SOCKETS = -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED Modified in the make file: added $(CFLAGS_SOCKETS) to all ext/socket lines ================================================== ext/sockets/sockets.lo: /usr/share/src/php-5.5.11/ext/sockets/sockets.c $(LIBTOOL) --mode=compile $(CC) -Iext/sockets/ -I/usr/share/src/php-5.5.11/ext/sockets/ $(COMMON_FLAGS) $(CFLAGS_SOCKETS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) -c /usr/share/src/php-5.5.11/ext/sockets/sockets.c -o ext/sockets/sockets.lo ext/sockets/multicast.lo: /usr/share/src/php-5.5.11/ext/sockets/multicast.c $(LIBTOOL) --mode=compile $(CC) -Iext/sockets/ -I/usr/share/src/php-5.5.11/ext/sockets/ $(COMMON_FLAGS) $(CFLAGS_SOCKETS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) -c /usr/share/src/php-5.5.11/ext/sockets/multicast.c -o ext/sockets/multicast.lo ext/sockets/conversions.lo: /usr/share/src/php-5.5.11/ext/sockets/conversions.c $(LIBTOOL) --mode=compile $(CC) -Iext/sockets/ -I/usr/share/src/php-5.5.11/ext/sockets/ $(COMMON_FLAGS) $(CFLAGS_SOCKETS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) -c /usr/share/src/php-5.5.11/ext/sockets/conversions.c -o ext/sockets/conversions.lo ext/sockets/sockaddr_conv.lo: /usr/share/src/php-5.5.11/ext/sockets/sockaddr_conv.c $(LIBTOOL) --mode=compile $(CC) -Iext/sockets/ -I/usr/share/src/php-5.5.11/ext/sockets/ $(COMMON_FLAGS) $(CFLAGS_SOCKETS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) -c /usr/share/src/php-5.5.11/ext/sockets/sockaddr_conv.c -o ext/sockets/sockaddr_conv.lo ext/sockets/sendrecvmsg.lo: /usr/share/src/php-5.5.11/ext/sockets/sendrecvmsg.c $(LIBTOOL) --mode=compile $(CC) -Iext/sockets/ -I/usr/share/src/php-5.5.11/ext/sockets/ $(COMMON_FLAGS) $(CFLAGS_SOCKETS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) -c /usr/share/src/php-5.5.11/ext/sockets/sendrecvmsg.c -o ext/sockets/sendrecvmsg.lo It still fails, but in a different place. Here is what it poops out : ===================================================================== /bin/bash /usr/share/src/php-5.5.11/libtool --silent --preserve-dup-deps --mode=compile gcc -std=gnu99 -Iext/sockets/ -I/usr/share/src/php-5.5.11/ext/sockets/ -DPHP_ATOM_INC -I/usr/share/src/php-5.5.11/include -I/usr/share/src/php-5.5.11/main -I/usr/share/src/php-5.5.11 -I/usr/share/src/php-5.5.11/ext/date/lib -I/usr/share/src/php-5.5.11/ext/ereg/regex -I/usr/local/include/libxml2 -I/usr/local/openssl-1.0.1g/include -I/usr/local/include -I/usr/local/include/freetype2 -I/usr/share/src/php-5.5.11/ext/mbstring/oniguruma -I/usr/share/src/php-5.5.11/ext/mbstring/libmbfl -I/usr/share/src/php-5.5.11/ext/mbstring/libmbfl/mbfl -I/usr/share/src/php-5.5.11/ext/sqlite3/libsqlite -I/usr/include/libxml2 -I/usr/share/src/php-5.5.11/TSRM -I/usr/share/src/php-5.5.11/Zend -D_POSIX_PTHREAD_SEMANTICS -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED -I/usr/local/include -g -O2 -DZTS -c /usr/share/src/php-5.5.11/ext/sockets/sockets.c -o ext/sockets/sockets.lo In file included from /usr/include/iso/stdlib_iso.h:30, from /usr/include/stdlib.h:18, from /usr/share/src/php-5.5.11/include/../main/php_config.h:2414, from /usr/share/src/php-5.5.11/Zend/zend_config.h:1, from /usr/share/src/php-5.5.11/Zend/zend.h:51, from /usr/share/src/php-5.5.11/main/php.h:34, from /usr/share/src/php-5.5.11/ext/sockets/sockets.c:29: /usr/include/sys/feature_tests.h:332:2: #error "Compiler or options invalid for pre-UNIX 03 X/Open applications and pre-2001 POSIX applications" In file included from /usr/share/src/php-5.5.11/Zend/zend_compile.h:719, from /usr/share/src/php-5.5.11/Zend/zend_modules.h:26, from /usr/share/src/php-5.5.11/Zend/zend_API.h:26, from /usr/share/src/php-5.5.11/main/php.h:38, from /usr/share/src/php-5.5.11/ext/sockets/sockets.c:29: /usr/share/src/php-5.5.11/Zend/zend_vm_opcodes.h:173:7: warning: no newline at end of file make: *** [ext/sockets/sockets.lo] Error 1 I am at a loss :( Previous Comments: ------------------------------------------------------------------------ [2013-08-09 11:56:29] eugene at zhegan dot in Description: ------------ php fails to build on Solaris (10 and 11) with --enable-sockets: [...] /bin/sh /home/emz/src/php-5.5.1/libtool --silent --preserve-dup-deps -- mode=compile gcc -Iext/sockets/ -I/home/emz/src/php-5.5.1/ext/sockets/ - DPHP_ATOM_INC -I/home/emz/src/php-5.5.1/include -I/home/emz/src/php-5.5.1/main - I/home/emz/src/php-5.5.1 -I/home/emz/src/php-5.5.1/ext/date/lib - I/home/emz/src/php-5.5.1/ext/ereg/regex -I/usr/include/libxml2 - I/usr/local/openssl/include -I/usr/local/curl/include - I/usr/local/libpng/include -I/usr/include/freetype2 -I/usr/local/c- client/include -I/home/emz/src/php-5.5.1/ext/mbstring/oniguruma - I/home/emz/src/php-5.5.1/ext/mbstring/libmbfl -I/home/emz/src/php- 5.5.1/ext/mbstring/libmbfl/mbfl -I/usr/local/libmcrypt/include - I/usr/local/mysql/include -I/opt/oracle/orahome/rdbms/public - I/opt/oracle/orahome/rdbms/demo -I/home/emz/src/php-5.5.1/ext/sqlite3/libsqlite -I/home/emz/src/php-5.5.1/TSRM -I/home/emz/src/php-5.5.1/Zend - D_POSIX_PTHREAD_SEMANTICS -I/usr/include -m64 -O -I/usr/local/mysql/include - I/usr/local/openssl/include -I/usr/local/curl/include -I/usr/local/c- client/include -I/usr/local/libpng/include -fvisibility=hidden -c /home/emz/src/php-5.5.1/ext/sockets/conversions.c -o ext/sockets/conversions.lo /home/emz/src/php-5.5.1/ext/sockets/conversions.c: In function ‘from_zval_write_control’: /home/emz/src/php-5.5.1/ext/sockets/conversions.c:923:35: warning: cast to pointer from integer of different size /home/emz/src/php-5.5.1/ext/sockets/conversions.c: In function ‘from_zval_write_control_array’: /home/emz/src/php-5.5.1/ext/sockets/conversions.c:973:8: error: ‘struct msghdr’ has no member named ‘msg_control’ /home/emz/src/php-5.5.1/ext/sockets/conversions.c:974:8: error: ‘struct msghdr’ has no member named ‘msg_controllen’ /home/emz/src/php-5.5.1/ext/sockets/conversions.c: In function ‘to_zval_read_cmsg_data’: /home/emz/src/php-5.5.1/ext/sockets/conversions.c:1003:18: warning: cast to pointer from integer of different size /home/emz/src/php-5.5.1/ext/sockets/conversions.c: In function ‘to_zval_read_control_array’: /home/emz/src/php-5.5.1/ext/sockets/conversions.c:1037:12: warning: assignment makes pointer from integer without a cast /home/emz/src/php-5.5.1/ext/sockets/conversions.c:1039:9: warning: assignment makes pointer from integer without a cast /home/emz/src/php-5.5.1/ext/sockets/conversions.c: In function ‘from_zval_write_controllen’: /home/emz/src/php-5.5.1/ext/sockets/conversions.c:1146:8: error: ‘struct msghdr’ has no member named ‘msg_control’ /home/emz/src/php-5.5.1/ext/sockets/conversions.c:1147:8: error: ‘struct msghdr’ has no member named ‘msg_controllen’ /home/emz/src/php-5.5.1/ext/sockets/conversions.c: In function ‘to_zval_read_msghdr’: /home/emz/src/php-5.5.1/ext/sockets/conversions.c:1248:34: error: ‘struct msghdr’ has no member named ‘msg_flags’ /home/emz/src/php-5.5.1/ext/sockets/conversions.c: In function ‘to_zval_read_fd_array’: /home/emz/src/php-5.5.1/ext/sockets/conversions.c:1427:16: warning: cast to pointer from integer of different size gmake: *** [ext/sockets/conversions.lo] Error 1 This is caused by the lack of CFLAGS. This can be easily fixed by the following actions: - after running configure Makefile should be modified in the followong way: -- this line should be added in Makefile: CFLAGS_SOCKETS = -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED -- the lines mentioning ext/sockets should be modified as follows (the variable above should be added into the compilation directive): ext/sockets/sockets.lo: /home/emz/src/php-5.5.1/ext/sockets/sockets.c $(LIBTOOL) --mode=compile $(CC) -Iext/sockets/ -I/home/emz/src/php- 5.5.1/ext/sockets/ $(COMMON_FLAGS) $(CFLAGS_SOCKETS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) -c /home/emz/src/php-5.5.1/ext/sockets/sockets.c -o ext/sockets/sockets.lo ext/sockets/multicast.lo: /home/emz/src/php-5.5.1/ext/sockets/multicast.c $(LIBTOOL) --mode=compile $(CC) -Iext/sockets/ -I/home/emz/src/php- 5.5.1/ext/sockets/ $(COMMON_FLAGS) $(CFLAGS_SOCKETS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) -c /home/emz/src/php-5.5.1/ext/sockets/multicast.c -o ext/sockets/multicast.lo ext/sockets/conversions.lo: /home/emz/src/php-5.5.1/ext/sockets/conversions.c $(LIBTOOL) --mode=compile $(CC) -Iext/sockets/ -I/home/emz/src/php- 5.5.1/ext/sockets/ $(COMMON_FLAGS) $(CFLAGS_SOCKETS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) -c /home/emz/src/php-5.5.1/ext/sockets/conversions.c -o ext/sockets/conversions.lo ext/sockets/sockaddr_conv.lo: /home/emz/src/php- 5.5.1/ext/sockets/sockaddr_conv.c $(LIBTOOL) --mode=compile $(CC) -Iext/sockets/ -I/home/emz/src/php- 5.5.1/ext/sockets/ $(COMMON_FLAGS) $(CFLAGS_SOCKETS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) -c /home/emz/src/php5.5.1/ext/sockets/sockaddr_conv.c -o ext/sockets/sockaddr_conv.lo ext/sockets/sendrecvmsg.lo: /home/emz/src/php-5.5.1/ext/sockets/sendrecvmsg.c $(LIBTOOL) --mode=compile $(CC) -Iext/sockets/ -I/home/emz/src/php- 5.5.1/ext/sockets/ $(COMMON_FLAGS) $(CFLAGS_SOCKETS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) -c /home/emz/src/php-5.5.1/ext/sockets/sendrecvmsg.c -o ext/sockets/sendrecvmsg.lo With these alterations done, php can be built on Solaris (10 and 11) with -- enable sockets. Adding new flags globally doesn't help, it's even making it worse, because with these CFLAGS being declared globally the compilation process fails around ext/hash/hash_ripemd.c (at least). ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=65427&edit=1

« previous php.bugs (#185248) next »