From owner-svn-ports-all@freebsd.org Thu Dec 24 12:50:44 2020 Return-Path: Delivered-To: svn-ports-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E77B94C2E7E; Thu, 24 Dec 2020 12:50:44 +0000 (UTC) (envelope-from fluffy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4D1qgS6CNWz3sjY; Thu, 24 Dec 2020 12:50:44 +0000 (UTC) (envelope-from fluffy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C7D9D10E23; Thu, 24 Dec 2020 12:50:44 +0000 (UTC) (envelope-from fluffy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0BOCoilc083415; Thu, 24 Dec 2020 12:50:44 GMT (envelope-from fluffy@FreeBSD.org) Received: (from fluffy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0BOCoitE083412; Thu, 24 Dec 2020 12:50:44 GMT (envelope-from fluffy@FreeBSD.org) Message-Id: <202012241250.0BOCoitE083412@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: fluffy set sender to fluffy@FreeBSD.org using -f From: Dima Panov Date: Thu, 24 Dec 2020 12:50:44 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r559069 - in head/devel/pecl-uv: . files X-SVN-Group: ports-head X-SVN-Commit-Author: fluffy X-SVN-Commit-Paths: in head/devel/pecl-uv: . files X-SVN-Commit-Revision: 559069 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Dec 2020 12:50:45 -0000 Author: fluffy Date: Thu Dec 24 12:50:43 2020 New Revision: 559069 URL: https://svnweb.freebsd.org/changeset/ports/559069 Log: devel/pecl-uv: fix build with php74+ take maintainership Approved by: miwi Obtained from: pecl-uv github repo Added: head/devel/pecl-uv/files/ head/devel/pecl-uv/files/patch-php__uv.c (contents, props changed) head/devel/pecl-uv/files/patch-php__uv.h (contents, props changed) Modified: head/devel/pecl-uv/Makefile Modified: head/devel/pecl-uv/Makefile ============================================================================== --- head/devel/pecl-uv/Makefile Thu Dec 24 12:30:21 2020 (r559068) +++ head/devel/pecl-uv/Makefile Thu Dec 24 12:50:43 2020 (r559069) @@ -3,9 +3,10 @@ PORTNAME= uv PORTVERSION= 0.2.4 +PORTREVISION= 1 CATEGORIES= devel -MAINTAINER= miwi@FreeBSD.org +MAINTAINER= fluffy@FreeBSD.org COMMENT= PHP wrapper for libuv LICENSE= PHP301 @@ -13,7 +14,6 @@ LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libuv.so:devel/libuv -IGNORE_WITH_PHP= 73 USES= php:pecl .include Added: head/devel/pecl-uv/files/patch-php__uv.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/pecl-uv/files/patch-php__uv.c Thu Dec 24 12:50:43 2020 (r559069) @@ -0,0 +1,448 @@ +--- php_uv.c.orig 2019-05-01 11:04:19 UTC ++++ php_uv.c +@@ -17,6 +17,7 @@ + +----------------------------------------------------------------------+ + */ + ++#pragma GCC diagnostic ignored "-Wmissing-braces" + + #include "php_uv.h" + #include "php_main.h" +@@ -294,7 +295,11 @@ static int uv_parse_arg_object(zval *arg, zval **dest, + #endif + + #if !defined(PHP_WIN32) && !(defined(HAVE_SOCKETS) && !defined(COMPILE_DL_SOCKETS)) ++# if PHP_VERSION_ID >= 80000 ++zend_class_entry *(*socket_ce)(void) = NULL; ++# else + int (*php_sockets_le_socket)(void) = NULL; ++# endif + #endif + + /* objects */ +@@ -446,7 +451,7 @@ static php_socket_t php_uv_zval_to_valid_poll_fd(zval + } + + fd = -1; +-#if !defined(PHP_WIN32) || (defined(HAVE_SOCKETS) && !defined(COMPILE_DL_SOCKETS)) ++#if PHP_VERSION_ID < 80000 && (!defined(PHP_WIN32) || (defined(HAVE_SOCKETS) && !defined(COMPILE_DL_SOCKETS))) + } else if (php_sockets_le_socket && (socket = (php_socket *) zend_fetch_resource_ex(ptr, NULL, php_sockets_le_socket()))) { + fd = socket->bsd_socket; + #endif +@@ -454,6 +459,10 @@ static php_socket_t php_uv_zval_to_valid_poll_fd(zval + php_error_docref(NULL, E_WARNING, "unhandled resource type detected."); + fd = -1; + } ++#if PHP_VERSION_ID >= 80000 && (!defined(PHP_WIN32) || (defined(HAVE_SOCKETS) && !defined(COMPILE_DL_SOCKETS))) ++ } else if (socket_ce && Z_TYPE_P(ptr) == IS_OBJECT && Z_OBJCE_P(ptr) == socket_ce && (socket = (php_socket *) ((char *)(Z_OBJ_P(ptr)) - XtOffsetOf(php_socket, std)))) { ++ fd = socket->bsd_socket; ++#endif + } + + return fd; +@@ -472,7 +481,7 @@ static php_socket_t php_uv_zval_to_fd(zval *ptr) + if (php_stream_cast(stream, PHP_STREAM_AS_FD | PHP_STREAM_CAST_INTERNAL, (void *) &fd, 1) != SUCCESS || fd < 0) { + fd = -1; + } +-#if !defined(PHP_WIN32) || (defined(HAVE_SOCKETS) && !defined(COMPILE_DL_SOCKETS)) ++#if PHP_VERSION_ID < 80000 && (!defined(PHP_WIN32) || (defined(HAVE_SOCKETS) && !defined(COMPILE_DL_SOCKETS))) + } else if (php_sockets_le_socket && (socket = (php_socket *) zend_fetch_resource_ex(ptr, NULL, php_sockets_le_socket()))) { + fd = socket->bsd_socket; + #endif +@@ -494,6 +503,10 @@ static php_socket_t php_uv_zval_to_fd(zval *ptr) + fd = -1; + } + } ++#if PHP_VERSION_ID >= 80000 && (!defined(PHP_WIN32) || (defined(HAVE_SOCKETS) && !defined(COMPILE_DL_SOCKETS))) ++ } else if (socket_ce && Z_TYPE_P(ptr) == IS_OBJECT && Z_OBJCE_P(ptr) == socket_ce && (socket = (php_socket *) ((char *)(Z_OBJ_P(ptr)) - XtOffsetOf(php_socket, std)))) { ++ fd = socket->bsd_socket; ++#endif + } + + return fd; +@@ -1099,7 +1112,7 @@ static void php_uv_fs_common(uv_fs_type fs_type, INTER + + static zval php_uv_address_to_zval(const struct sockaddr *addr) + { +- zval tmp = {{0}}; ++ zval tmp = {0}; + char ip[INET6_ADDRSTRLEN]; + const struct sockaddr_in *a4; + const struct sockaddr_in6 *a6; +@@ -1139,7 +1152,7 @@ static zval php_uv_address_to_zval(const struct sockad + + static zval php_uv_make_stat(const uv_stat_t *s) + { +- zval tmp = {{0}}; ++ zval tmp = {0}; + array_init(&tmp); + + add_assoc_long_ex(&tmp, ZEND_STRL("dev"), s->st_dev); +@@ -1305,7 +1318,9 @@ static int php_uv_do_callback(zval *retval_ptr, php_uv + callback->fci.params = params; + callback->fci.retval = retval_ptr; + callback->fci.param_count = param_count; ++#if PHP_VERSION_ID < 80000 + callback->fci.no_separation = 1; ++#endif + + error = zend_call_function(&callback->fci, &callback->fcc); + } else { +@@ -1330,7 +1345,9 @@ static int php_uv_do_callback2(zval *retval_ptr, php_u + uv->callback[type]->fci.params = params; + uv->callback[type]->fci.retval = retval_ptr; + uv->callback[type]->fci.param_count = param_count; ++#if PHP_VERSION_ID < 80000 + uv->callback[type]->fci.no_separation = 1; ++#endif + + if (zend_call_function(&uv->callback[type]->fci, &uv->callback[type]->fcc) != SUCCESS) { + error = -1; +@@ -1370,7 +1387,9 @@ static int php_uv_do_callback3(zval *retval_ptr, php_u + uv->callback[type]->fci.params = params; + uv->callback[type]->fci.retval = retval_ptr; + uv->callback[type]->fci.param_count = param_count; ++#if PHP_VERSION_ID < 80000 + uv->callback[type]->fci.no_separation = 1; ++#endif + uv->callback[type]->fci.object = NULL; + #if PHP_VERSION_ID >= 70300 + uv->callback[type]->fci.size = sizeof(zend_fcall_info); +@@ -1432,8 +1451,8 @@ static int php_uv_do_callback3(zval *retval_ptr, php_u + + static void php_uv_tcp_connect_cb(uv_connect_t *req, int status) + { +- zval retval = {{0}}; +- zval params[2] = {{{0}}}; ++ zval retval = {0}; ++ zval params[2] = {0}; + php_uv_t *uv = (php_uv_t *) req->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -1453,8 +1472,8 @@ static void php_uv_tcp_connect_cb(uv_connect_t *req, i + /* TODO: Not sure how PHP will deal with int64_t */ + static void php_uv_process_close_cb(uv_process_t* process, int64_t exit_status, int term_signal) + { +- zval retval = {{0}}; +- zval params[3] = {{{0}}}; ++ zval retval = {0}; ++ zval params[3] = {0}; + php_uv_t *uv = (php_uv_t*)process->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -1475,8 +1494,8 @@ static void php_uv_process_close_cb(uv_process_t* proc + + static void php_uv_pipe_connect_cb(uv_connect_t *req, int status) + { +- zval retval = {{0}}; +- zval params[2] = {{{0}}}; ++ zval retval = {0}; ++ zval params[2] = {0}; + php_uv_t *uv = (php_uv_t*)req->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -1497,8 +1516,8 @@ static void php_uv_pipe_connect_cb(uv_connect_t *req, + static void php_uv_walk_cb(uv_handle_t* handle, void* arg) + { + /* +- zval retval = {{0}}; +- zval params[2] = {{{0}}}; ++ zval retval = {0}; ++ zval params[2] = {0}; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + + ZVAL_LONG(¶ms[0], status); +@@ -1516,8 +1535,8 @@ static void php_uv_walk_cb(uv_handle_t* handle, void* + static void php_uv_write_cb(uv_write_t* req, int status) + { + write_req_t* wr = (write_req_t*) req; +- zval retval = {{0}}; +- zval params[2] = {{{0}}}; ++ zval retval = {0}; ++ zval params[2] = {0}; + php_uv_t *uv = (php_uv_t *) req->handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -1540,8 +1559,8 @@ static void php_uv_write_cb(uv_write_t* req, int statu + static void php_uv_udp_send_cb(uv_udp_send_t* req, int status) + { + send_req_t* wr = (send_req_t*) req; +- zval retval = {{0}}; +- zval params[2] = {{{0}}}; ++ zval retval = {0}; ++ zval params[2] = {0}; + php_uv_t *uv = (php_uv_t *) req->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -1566,8 +1585,8 @@ static void php_uv_udp_send_cb(uv_udp_send_t* req, int + + static void php_uv_listen_cb(uv_stream_t* server, int status) + { +- zval retval = {{0}}; +- zval params[2] = {{{0}}}; ++ zval retval = {0}; ++ zval params[2] = {0}; + php_uv_t *uv = (php_uv_t *) server->data; + + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); +@@ -1588,8 +1607,8 @@ static void php_uv_listen_cb(uv_stream_t* server, int + + static void php_uv_shutdown_cb(uv_shutdown_t* handle, int status) + { +- zval retval = {{0}}; +- zval params[2] = {{{0}}}; ++ zval retval = {0}; ++ zval params[2] = {0}; + php_uv_t *uv = (php_uv_t *) handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -1607,8 +1626,8 @@ static void php_uv_shutdown_cb(uv_shutdown_t* handle, + + static void php_uv_read_cb(uv_stream_t* handle, ssize_t nread, const uv_buf_t* buf) + { +- zval retval = {{0}}; +- zval params[3] = {{{0}}}; ++ zval retval = {0}; ++ zval params[3] = {0}; + php_uv_t *uv = (php_uv_t *) handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -1644,8 +1663,8 @@ static void php_uv_read_cb(uv_stream_t* handle, ssize_ + /* unused + static void php_uv_read2_cb(uv_pipe_t* handle, ssize_t nread, uv_buf_t buf, uv_handle_type pending) + { +- zval retval = {{0}}; +- zval params[4] = {{{0}}}; ++ zval retval = {0}; ++ zval params[4] = {0}; + php_uv_t *uv = (php_uv_t*)handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -1682,7 +1701,7 @@ static void php_uv_read2_cb(uv_pipe_t* handle, ssize_t + + static void php_uv_prepare_cb(uv_prepare_t* handle) + { +- zval retval = {{0}}; ++ zval retval = {0}; + zval params[1]; + php_uv_t *uv = (php_uv_t*)handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); +@@ -1703,7 +1722,7 @@ static void php_uv_prepare_cb(uv_prepare_t* handle) + + static void php_uv_check_cb(uv_check_t* handle) + { +- zval retval = {{0}}; ++ zval retval = {0}; + zval params[1]; + php_uv_t *uv = (php_uv_t*)handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); +@@ -1725,7 +1744,7 @@ static void php_uv_check_cb(uv_check_t* handle) + + static void php_uv_async_cb(uv_async_t* handle) + { +- zval retval = {{0}}; ++ zval retval = {0}; + zval params[1]; + php_uv_t *uv = (php_uv_t*)handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); +@@ -1747,7 +1766,7 @@ static void php_uv_async_cb(uv_async_t* handle) + #if defined(ZTS) && PHP_VERSION_ID < 80000 + static void php_uv_work_cb(uv_work_t* req) + { +- zval retval = {{0}}; ++ zval retval = {0}; + php_uv_t *uv = (php_uv_t*)req->data; + + uv = (php_uv_t*)req->data; +@@ -1759,7 +1778,7 @@ static void php_uv_work_cb(uv_work_t* req) + + static void php_uv_after_work_cb(uv_work_t* req, int status) + { +- zval retval = {{0}}; ++ zval retval = {0}; + php_uv_t *uv = (php_uv_t*)req->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -1779,8 +1798,8 @@ static void php_uv_after_work_cb(uv_work_t* req, int s + + static void php_uv_fs_cb(uv_fs_t* req) + { +- zval params[3] = {{{0}}}; +- zval retval = {{0}}; ++ zval params[3] = {0}; ++ zval retval = {0}; + php_uv_t *uv = (php_uv_t*)req->data; + int argc, i = 0; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); +@@ -1928,8 +1947,8 @@ static void php_uv_fs_cb(uv_fs_t* req) + + static void php_uv_fs_event_cb(uv_fs_event_t* req, const char* filename, int events, int status) + { +- zval params[4] = {{{0}}}; +- zval retval = {{0}}; ++ zval params[4] = {0}; ++ zval retval = {0}; + php_uv_t *uv = (php_uv_t*)req->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -1959,7 +1978,7 @@ static void php_uv_fs_event_cb(uv_fs_event_t* req, con + + static zval php_uv_stat_to_zval(const uv_stat_t *stat) + { +- zval result = {{0}}; ++ zval result = {0}; + array_init(&result); + + add_assoc_long_ex(&result, ZEND_STRL("dev"), stat->st_dev); +@@ -1985,8 +2004,8 @@ static zval php_uv_stat_to_zval(const uv_stat_t *stat) + + static void php_uv_fs_poll_cb(uv_fs_poll_t* handle, int status, const uv_stat_t* prev, const uv_stat_t* curr) + { +- zval params[4] = {{{0}}}; +- zval retval = {{0}}; ++ zval params[4] = {0}; ++ zval retval = {0}; + php_uv_t *uv = (php_uv_t*)handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -2010,8 +2029,8 @@ static void php_uv_fs_poll_cb(uv_fs_poll_t* handle, in + + static void php_uv_poll_cb(uv_poll_t* handle, int status, int events) + { +- zval params[4] = {{{0}}}; +- zval retval = {{0}}; ++ zval params[4] = {0}; ++ zval retval = {0}; + php_uv_t *uv = (php_uv_t*)handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -2043,8 +2062,8 @@ static void php_uv_poll_cb(uv_poll_t* handle, int stat + static void php_uv_udp_recv_cb(uv_udp_t* handle, ssize_t nread, const uv_buf_t* buf, const struct sockaddr* addr, unsigned flags) + { + /* TODO: is this correctly implmented? */ +- zval retval = {{0}}; +- zval params[3] = {{{0}}}; ++ zval retval = {0}; ++ zval params[3] = {0}; + php_uv_t *uv = (php_uv_t*)handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -2077,8 +2096,8 @@ static void php_uv_read_alloc(uv_handle_t* handle, siz + + static void php_uv_close_cb(uv_handle_t *handle) + { +- zval retval = {{0}}; +- zval params[1] = {{{0}}}; ++ zval retval = {0}; ++ zval params[1] = {0}; + + php_uv_t *uv = (php_uv_t *) handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); +@@ -2119,8 +2138,8 @@ static void php_uv_close(php_uv_t *uv) { + + static void php_uv_idle_cb(uv_timer_t *handle) + { +- zval retval = {{0}}; +- zval params[1] = {{{0}}}; ++ zval retval = {0}; ++ zval params[1] = {0}; + + php_uv_t *uv = (php_uv_t*)handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); +@@ -2139,8 +2158,8 @@ static void php_uv_idle_cb(uv_timer_t *handle) + + static void php_uv_getaddrinfo_cb(uv_getaddrinfo_t* handle, int status, struct addrinfo* res) + { +- zval retval = {{0}}; +- zval params[2] = {{{0}}}; ++ zval retval = {0}; ++ zval params[2] = {0}; + struct addrinfo *address; + char ip[INET6_ADDRSTRLEN]; + const char *addr; +@@ -2186,8 +2205,8 @@ static void php_uv_getaddrinfo_cb(uv_getaddrinfo_t* ha + + static void php_uv_timer_cb(uv_timer_t *handle) + { +- zval retval = {{0}}; +- zval params[1] = {{{0}}}; ++ zval retval = {0}; ++ zval params[1] = {0}; + php_uv_t *uv = (php_uv_t*)handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -2208,8 +2227,8 @@ static void php_uv_timer_cb(uv_timer_t *handle) + + static void php_uv_signal_cb(uv_signal_t *handle, int sig_num) + { +- zval retval = {{0}}; +- zval params[2] = {{{0}}}; ++ zval retval = {0}; ++ zval params[2] = {0}; + php_uv_t *uv = (php_uv_t*)handle->data; + TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); + +@@ -2419,7 +2438,7 @@ static void php_uv_tcp_connect(enum php_uv_socket_type + /* zend */ + + static zend_function_entry php_uv_empty_methods[] = { +- {NULL, NULL, NULL} ++ {0} + }; + + #if PHP_VERSION_ID >= 80000 +@@ -2676,10 +2695,17 @@ PHP_MINIT_FUNCTION(uv) + zend_module_entry *sockets; + if ((sockets = zend_hash_str_find_ptr(&module_registry, ZEND_STRL("sockets")))) { + if (sockets->handle) { // shared ++# if PHP_VERSION_ID >= 80000 ++ socket_ce = (int (*)(void)) DL_FETCH_SYMBOL(sockets->handle, "_socket_ce"); ++ if (socket_ce == NULL) { ++ socket_ce = (int (*)(void)) DL_FETCH_SYMBOL(sockets->handle, "_socket_ce"); ++ } ++# else + php_sockets_le_socket = (int (*)(void)) DL_FETCH_SYMBOL(sockets->handle, "php_sockets_le_socket"); + if (php_sockets_le_socket == NULL) { + php_sockets_le_socket = (int (*)(void)) DL_FETCH_SYMBOL(sockets->handle, "_php_sockets_le_socket"); + } ++#endif + } + } + } +@@ -4775,7 +4801,7 @@ PHP_FUNCTION(uv_stdio_new) + php_error_docref(NULL, E_WARNING, "passed resource without file descriptor"); + RETURN_FALSE; + } +-#if !defined(PHP_WIN32) || defined(HAVE_SOCKET) ++#if PHP_VERSION_ID < 80000 && (!defined(PHP_WIN32) || (defined(HAVE_SOCKET) && !defined(COMPILE_DL_SOCKETS))) + } else if ((socket = (php_socket *) zend_fetch_resource_ex(handle, NULL, php_sockets_le_socket()))) { + fd = socket->bsd_socket; + #endif +@@ -4797,8 +4823,17 @@ PHP_FUNCTION(uv_stdio_new) + php_error_docref(NULL, E_WARNING, "flags must be exactly one of UV::INHERIT_STREAM or UV::CREATE_PIPE for UV handles"); + RETURN_FALSE; + } ++#if PHP_VERSION_ID >= 80000 && (!defined(PHP_WIN32) || (defined(HAVE_SOCKETS) && !defined(COMPILE_DL_SOCKETS))) ++ } else if (socket_ce && Z_TYPE_P(handle) == IS_OBJECT && Z_OBJCE_P(handle) == socket_ce && (socket = (php_socket *) ((char *)(Z_OBJ_P(handle)) - XtOffsetOf(php_socket, std)))) { ++ fd = socket->bsd_socket; ++ if (flags & (UV_CREATE_PIPE | UV_INHERIT_STREAM)) { ++ php_error_docref(NULL, E_WARNING, "flags must not be UV::CREATE_PIPE or UV::INHERIT_STREAM for socket objects"); ++ RETURN_FALSE; ++ } ++ flags |= UV_INHERIT_FD; ++#endif + } else { +- php_error_docref(NULL, E_WARNING, "passed unexpected value, expected instance of UV, file resource or socket resource"); ++ php_error_docref(NULL, E_WARNING, "passed unexpected value, expected instance of UV, file resource or socket object"); + RETURN_FALSE; + } + +@@ -6331,7 +6366,7 @@ static zend_function_entry uv_functions[] = { + PHP_FE(uv_signal_init, arginfo_uv_signal_init) + PHP_FE(uv_signal_start, arginfo_uv_signal_start) + PHP_FE(uv_signal_stop, arginfo_uv_signal_stop) +- {NULL, NULL, NULL} ++ {0} + }; + + PHP_MINFO_FUNCTION(uv) Added: head/devel/pecl-uv/files/patch-php__uv.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/pecl-uv/files/patch-php__uv.h Thu Dec 24 12:50:43 2020 (r559069) @@ -0,0 +1,15 @@ +--- php_uv.h.orig 2019-05-01 11:04:19 UTC ++++ php_uv.h +@@ -40,7 +40,11 @@ + #elif !defined(PHP_WIN32) + typedef struct { + int bsd_socket; +- /* other fields are not interesting... */ ++ int type; ++ int error; ++ int blocking; ++ zval zstream; ++ zend_object std; + } php_socket; + #endif +