Can't build for PHP 7

Issue #15 resolved
Anonymous created an issue
creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
running: make
/bin/bash /tmp/pear/temp/pear-build-defaultuserqJyKOz/ev-0.2.15/libtool --mode=compile cc -I/tmp/pear/temp/ev/libev  -I. -I/tmp/pear/temp/ev -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-defaultuserqJyKOz/ev-0.2.15/include -I/tmp/pear/temp/pear-build-defaultuserqJyKOz/ev-0.2.15/main -I/tmp/pear/temp/ev -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  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/temp/ev/libev/ev.c -o libev/ev.lo
mkdir libev/.libs
 cc -I/tmp/pear/temp/ev/libev -I. -I/tmp/pear/temp/ev -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-defaultuserqJyKOz/ev-0.2.15/include -I/tmp/pear/temp/pear-build-defaultuserqJyKOz/ev-0.2.15/main -I/tmp/pear/temp/ev -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 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/ev/libev/ev.c  -fPIC -DPIC -o libev/.libs/ev.o
/tmp/pear/temp/ev/libev/ev.c:1609:31: warning: 'ev_default_loop_ptr' initialized and declared 'extern'
   EV_API_DECL struct ev_loop *ev_default_loop_ptr = 0; /* needs to be initialised to make it a definition despite extern */
                               ^
/bin/bash /tmp/pear/temp/pear-build-defaultuserqJyKOz/ev-0.2.15/libtool --mode=compile cc -I/tmp/pear/temp/ev/libev  -I. -I/tmp/pear/temp/ev -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-defaultuserqJyKOz/ev-0.2.15/include -I/tmp/pear/temp/pear-build-defaultuserqJyKOz/ev-0.2.15/main -I/tmp/pear/temp/ev -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  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/temp/ev/util.c -o util.lo
mkdir .libs
 cc -I/tmp/pear/temp/ev/libev -I. -I/tmp/pear/temp/ev -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-defaultuserqJyKOz/ev-0.2.15/include -I/tmp/pear/temp/pear-build-defaultuserqJyKOz/ev-0.2.15/main -I/tmp/pear/temp/ev -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 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/ev/util.c  -fPIC -DPIC -o .libs/util.o
/tmp/pear/temp/ev/util.c: In function 'php_ev_zval_to_fd':
/tmp/pear/temp/ev/util.c:34:45: error: expected expression before 'php_stream'
   if (ZEND_FETCH_RESOURCE_NO_RETURN(stream, php_stream *, ppfd, -1, NULL, php_file_le_stream())) {
                                             ^
In file included from /usr/local/include/php/main/php.h:394:0,
                 from /tmp/pear/temp/ev/common.h:25,
                 from /tmp/pear/temp/ev/embed.h:21,
                 from /tmp/pear/temp/ev/php_ev.h:22,
                 from /tmp/pear/temp/ev/util.c:19:
/usr/local/include/php/main/php_streams.h:271:99: warning: passing argument 1 of 'zend_fetch_resource2_ex' from incompatible pointer type
 #define php_stream_from_zval_no_verify(xstr, pzval) (xstr) = (php_stream*)zend_fetch_resource2_ex((pzval), "stream", php_file_le_stream(), php_file_le_pstream())
                                                                                                   ^
/tmp/pear/temp/ev/util.c:35:4: note: in expansion of macro 'php_stream_from_zval_no_verify'
    php_stream_from_zval_no_verify(stream, ppfd);
    ^
In file included from /usr/local/include/php/Zend/zend_API.h:28:0,
                 from /usr/local/include/php/main/php.h:39,
                 from /tmp/pear/temp/ev/common.h:25,
                 from /tmp/pear/temp/ev/embed.h:21,
                 from /tmp/pear/temp/ev/php_ev.h:22,
                 from /tmp/pear/temp/ev/util.c:19:
/usr/local/include/php/Zend/zend_list.h:66:16: note: expected 'struct zval *' but argument is of type 'struct zval **'
 ZEND_API void *zend_fetch_resource2_ex(zval *res, const char *resource_type_name, int resource_type, int resource_type2);
                ^
Makefile:195: recipe for target 'util.lo' failed
make: *** [util.lo] Error 1
ERROR: `make' failed

Comments (9)

  1. Ruslan Osmanov repo owner

    Please check out php7 branch. The tests are passing.

    I'm not merging to master because the code is different for pre-PHP7 versions. Currently, the PECL team has no idea how do we package PHP7 extensions.

  2. Nate Bessette

    @Ruslan Osmanov : Is this something that should be working now with the universal package? Getting an error similar to (but different than) the original poster. PECL package 1.0.0RC9 (beta) for PHP 7.0.4:

    running: make
    /bin/bash /tmp/pear/temp/pear-build-root7rLf0u/ev-0.2.15/libtool --mode=compile cc -I/tmp/pear/temp/ev/libev  -I. -I/tmp/pear/temp/ev -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-root7rLf0u/ev-0.2.15/include -I/tmp/pear/temp/pear-build-root7rLf0u/ev-0.2.15/main -I/tmp/pear/temp/ev -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/temp/ev/libev/ev.c -o libev/ev.lo
    libtool: compile:  cc -I/tmp/pear/temp/ev/libev -I. -I/tmp/pear/temp/ev -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-root7rLf0u/ev-0.2.15/include -I/tmp/pear/temp/pear-build-root7rLf0u/ev-0.2.15/main -I/tmp/pear/temp/ev -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/ev/libev/ev.c  -fPIC -DPIC -o libev/.libs/ev.o
    /tmp/pear/temp/ev/libev/ev.c:1609:31: warning: 'ev_default_loop_ptr' initialized and declared 'extern'
       EV_API_DECL struct ev_loop *ev_default_loop_ptr = 0; /* needs to be initialised to make it a definition despite extern */
                                   ^
    /tmp/pear/temp/ev/libev/ev.c: In function 'evpipe_write':
    /tmp/pear/temp/ev/libev/ev.c:2238:11: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
               write (evpipe [1], &counter, sizeof (uint64_t));
               ^
    /tmp/pear/temp/ev/libev/ev.c:2250:11: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
               write (evpipe [1], &(evpipe [1]), 1);
               ^
    /tmp/pear/temp/ev/libev/ev.c: In function 'pipecb':
    /tmp/pear/temp/ev/libev/ev.c:2271:11: warning: ignoring return value of 'read', declared with attribute warn_unused_result [-Wunused-result]
               read (evpipe [1], &counter, sizeof (uint64_t));
               ^
    /tmp/pear/temp/ev/libev/ev.c:2285:11: warning: ignoring return value of 'read', declared with attribute warn_unused_result [-Wunused-result]
               read (evpipe [0], &dummy, sizeof (dummy));
               ^
    /bin/bash /tmp/pear/temp/pear-build-root7rLf0u/ev-0.2.15/libtool --mode=compile cc -I/tmp/pear/temp/ev/libev  -I. -I/tmp/pear/temp/ev -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-root7rLf0u/ev-0.2.15/include -I/tmp/pear/temp/pear-build-root7rLf0u/ev-0.2.15/main -I/tmp/pear/temp/ev -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/temp/ev/util.c -o util.lo
    libtool: compile:  cc -I/tmp/pear/temp/ev/libev -I. -I/tmp/pear/temp/ev -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-root7rLf0u/ev-0.2.15/include -I/tmp/pear/temp/pear-build-root7rLf0u/ev-0.2.15/main -I/tmp/pear/temp/ev -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/ev/util.c  -fPIC -DPIC -o .libs/util.o
    /tmp/pear/temp/ev/util.c: In function 'php_ev_zval_to_fd':
    /tmp/pear/temp/ev/util.c:32:6: warning: implicit declaration of function 'Z_TYPE_PP' [-Wimplicit-function-declaration]
      if (Z_TYPE_PP(ppfd) == IS_RESOURCE) {
          ^
    /tmp/pear/temp/ev/util.c:34:7: warning: implicit declaration of function 'ZEND_FETCH_RESOURCE_NO_RETURN' [-Wimplicit-function-declaration]
       if (ZEND_FETCH_RESOURCE_NO_RETURN(stream, php_stream *, ppfd, -1, NULL, php_file_le_stream())) {
           ^
    /tmp/pear/temp/ev/util.c:34:45: error: expected expression before 'php_stream'
       if (ZEND_FETCH_RESOURCE_NO_RETURN(stream, php_stream *, ppfd, -1, NULL, php_file_le_stream())) {
                                                 ^
    In file included from /usr/include/php/20151012/main/php.h:389:0,
                     from /tmp/pear/temp/ev/common.h:25,
                     from /tmp/pear/temp/ev/embed.h:21,
                     from /tmp/pear/temp/ev/php_ev.h:22,
                     from /tmp/pear/temp/ev/util.c:19:
    /usr/include/php/20151012/main/php_streams.h:271:99: warning: passing argument 1 of 'zend_fetch_resource2_ex' from incompatible pointer type [-Wincompatible-pointer-types]
     #define php_stream_from_zval_no_verify(xstr, pzval) (xstr) = (php_stream*)zend_fetch_resource2_ex((pzval), "stream", php_file_le_stream(), php_file_le_pstream())
                                                                                                       ^
    /tmp/pear/temp/ev/util.c:35:4: note: in expansion of macro 'php_stream_from_zval_no_verify'
        php_stream_from_zval_no_verify(stream, ppfd);
        ^
    In file included from /usr/include/php/20151012/Zend/zend_API.h:28:0,
                     from /usr/include/php/20151012/main/php.h:40,
                     from /tmp/pear/temp/ev/common.h:25,
                     from /tmp/pear/temp/ev/embed.h:21,
                     from /tmp/pear/temp/ev/php_ev.h:22,
                     from /tmp/pear/temp/ev/util.c:19:
    /usr/include/php/20151012/Zend/zend_list.h:66:16: note: expected 'zval * {aka struct _zval_struct *}' but argument is of type 'zval ** {aka struct _zval_struct **}'
     ZEND_API void *zend_fetch_resource2_ex(zval *res, const char *resource_type_name, int resource_type, int resource_type2);
                    ^
    /tmp/pear/temp/ev/util.c:87:15: warning: implicit declaration of function 'Z_LVAL_PP' [-Wimplicit-function-declaration]
       file_desc = Z_LVAL_PP(ppfd);
                   ^
    Makefile:195: recipe for target 'util.lo' failed
    make: *** [util.lo] Error 1
    ERROR: `make' failed
    
  3. Ruslan Osmanov repo owner

    @Nate Bessette you're trying to build version ev-0.2.15. I guess you're running sudo pecl install ev which pulls the stable version. But the latest version (1.0.0RC9) is beta. So the command should be sudo pecl install ev-beta

  4. Nate Bessette

    Ah thanks, that did the trick. And now I learn this is a separate implementation from the pecl package (which is not included in the pecl repo) that React supports. I see some effort has been put into trying to add support for your implementation into React ( most recently https://github.com/reactphp/event-loop/pull/25 ), though apparently without success as of yet. How unfortunate, considering the supported implementation is all but abandoned by the developer (no php 7 support anytime soon).

  5. Log in to comment