You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I recently tried to install php-ext-jq in a docker container (base image: php:8). During make with php 8 I get the following error:
/php-ext-jq_build/php-ext-jq/jq.c: In function 'php_jq_err_cb':
/php-ext-jq_build/php-ext-jq/jq.c:95:5: warning: implicit declaration of function 'TSRMLS_FETCH'; did you mean 'TSRMLS_CACHE'? [-Wimplicit-function-declaration]
TSRMLS_FETCH();
^~~~~~~~~~~~
TSRMLS_CACHE
In file included from /php-ext-jq_build/php-ext-jq/jq.c:11:
/php-ext-jq_build/php-ext-jq/php_jq.h:31:50: error: expected ')' before 'TSRMLS_CC'
#definePHP_JQ_ERR(e, ...) php_error_docref(NULL TSRMLS_CC, e, __VA_ARGS__)
^~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c:99:13: note: in expansion of macro 'PHP_JQ_ERR'PHP_JQ_ERR(E_WARNING, jv_string_value(dump));
^~~~~~~~~~
/php-ext-jq_build/php-ext-jq/php_jq.h:31:28: error: too few arguments to function 'php_error_docref'
#definePHP_JQ_ERR(e, ...) php_error_docref(NULL TSRMLS_CC, e, __VA_ARGS__)
^~~~~~~~~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c:99:13: note: in expansion of macro 'PHP_JQ_ERR'PHP_JQ_ERR(E_WARNING, jv_string_value(dump));
^~~~~~~~~~
In file included from /php-ext-jq_build/php-ext-jq/jq.c:5:
/usr/local/include/php/main/php.h:341:23: note: declared here
PHPAPI ZEND_COLD voidphp_error_docref(constchar *docref, int type, constchar *format, ...)
^~~~~~~~~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c: In function 'zim_Jq___construct':
/php-ext-jq_build/php-ext-jq/jq.c:43:41: error: expected ')' before 'TSRMLS_CC'
zend_throw_exception_ex(NULL, _code TSRMLS_CC, __VA_ARGS__)
^~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c:131:9: note: in expansion of macro 'PHP_JQ_EXCEPTION'
PHP_JQ_EXCEPTION(0, "jq object has not been correctly initialized "
^~~~~~~~~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c:43:5: error: too few arguments to function 'zend_throw_exception_ex'zend_throw_exception_ex(NULL, _code TSRMLS_CC, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c:131:9: note: in expansion of macro 'PHP_JQ_EXCEPTION'
PHP_JQ_EXCEPTION(0, "jq object has not been correctly initialized "
^~~~~~~~~~~~~~~~
In file included from /php-ext-jq_build/php-ext-jq/jq.c:9:
/usr/local/include/php/Zend/zend_exceptions.h:61:33: note: declared here
ZEND_API ZEND_COLD zend_object *zend_throw_exception_ex(zend_class_entry *exception_ce, zend_long code, constchar *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 3, 4);
^~~~~~~~~~~~~~~~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c: In function 'zim_Jq_load':
/php-ext-jq_build/php-ext-jq/jq.c:147:47: error: expected ')' before 'TSRMLS_CC'if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",
^~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c:147:9: error: too few arguments to function 'zend_parse_parameters'
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",
^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/php/main/php.h:35,
from /php-ext-jq_build/php-ext-jq/jq.c:5:
/usr/local/include/php/Zend/zend_API.h:304:22: note: declared here
ZEND_API zend_result zend_parse_parameters(uint32_t num_args, constchar *type_spec, ...);
^~~~~~~~~~~~~~~~~~~~~
In file included from /php-ext-jq_build/php-ext-jq/jq.c:11:
/php-ext-jq_build/php-ext-jq/php_jq.h:31:50: error: expected ')' before 'TSRMLS_CC'
#definePHP_JQ_ERR(e, ...) php_error_docref(NULL TSRMLS_CC, e, __VA_ARGS__)
^~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c:167:13: note: in expansion of macro 'PHP_JQ_ERR'PHP_JQ_ERR(E_WARNING, "load json parse error");
^~~~~~~~~~
/php-ext-jq_build/php-ext-jq/php_jq.h:31:28: error: too few arguments to function 'php_error_docref'
#definePHP_JQ_ERR(e, ...) php_error_docref(NULL TSRMLS_CC, e, __VA_ARGS__)
^~~~~~~~~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c:167:13: note: in expansion of macro 'PHP_JQ_ERR'PHP_JQ_ERR(E_WARNING, "load json parse error");
^~~~~~~~~~
In file included from /php-ext-jq_build/php-ext-jq/jq.c:5:
/usr/local/include/php/main/php.h:341:23: note: declared here
PHPAPI ZEND_COLD voidphp_error_docref(constchar *docref, int type, constchar *format, ...)
^~~~~~~~~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c: In function 'zim_Jq_loadFile':
/php-ext-jq_build/php-ext-jq/jq.c:192:47: error: expected ')' before 'TSRMLS_CC'
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",
^~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c:192:9: error: too few arguments to function 'zend_parse_parameters'
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",
^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/php/main/php.h:35,
from /php-ext-jq_build/php-ext-jq/jq.c:5:
/usr/local/include/php/Zend/zend_API.h:304:22: note: declared here
ZEND_API zend_result zend_parse_parameters(uint32_t num_args, constchar *type_spec, ...);
^~~~~~~~~~~~~~~~~~~~~
In file included from /php-ext-jq_build/php-ext-jq/jq.c:11:
/php-ext-jq_build/php-ext-jq/php_jq.h:31:50: error: expected ')' before 'TSRMLS_CC'
#definePHP_JQ_ERR(e, ...) php_error_docref(NULL TSRMLS_CC, e, __VA_ARGS__)
^~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c:226:21: note: in expansion of macro 'PHP_JQ_ERR'PHP_JQ_ERR(E_WARNING, "load json parse error");
^~~~~~~~~~
/php-ext-jq_build/php-ext-jq/php_jq.h:31:28: error: too few arguments to function 'php_error_docref'
#definePHP_JQ_ERR(e, ...) php_error_docref(NULL TSRMLS_CC, e, __VA_ARGS__)
^~~~~~~~~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c:226:21: note: in expansion of macro 'PHP_JQ_ERR'PHP_JQ_ERR(E_WARNING, "load json parse error");
^~~~~~~~~~
In file included from /php-ext-jq_build/php-ext-jq/jq.c:5:
/usr/local/include/php/main/php.h:341:23: note: declared here
PHPAPI ZEND_COLD voidphp_error_docref(constchar *docref, int type, constchar *format, ...)
^~~~~~~~~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c: At top level:
/php-ext-jq_build/php-ext-jq/jq.c:263:51: error: expected ';', ',' or ')' before 'TSRMLS_DC'
static void php_jv_dump(zval **return_value, jv x TSRMLS_DC);
^~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c:265:39: error: expected ';', ','or')' before 'TSRMLS_DC'php_jv_dump(zval **return_value, jv x TSRMLS_DC)
^~~~~~~~~
/php-ext-jq_build/php-ext-jq/jq.c:423:69: error: expected ';', ',' or ')' before 'TSRMLS_DC' php_jq_filter(zval **return_value, jq_state *jq, jv json, int flags TSRMLS_DC) ^~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c: In function 'zim_Jq_filter':/php-ext-jq_build/php-ext-jq/jq.c:524:47: error: expected ')' before 'TSRMLS_CC' if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", ^~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c:524:9: error: too few arguments to function 'zend_parse_parameters' if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", ^~~~~~~~~~~~~~~~~~~~~In file included from /usr/local/include/php/main/php.h:35, from /php-ext-jq_build/php-ext-jq/jq.c:5:/usr/local/include/php/Zend/zend_API.h:304:22: note: declared here ZEND_API zend_result zend_parse_parameters(uint32_t num_args, const char *type_spec, ...); ^~~~~~~~~~~~~~~~~~~~~In file included from /php-ext-jq_build/php-ext-jq/jq.c:11:/php-ext-jq_build/php-ext-jq/php_jq.h:31:50: error: expected ')' before 'TSRMLS_CC' #define PHP_JQ_ERR(e, ...) php_error_docref(NULL TSRMLS_CC, e, __VA_ARGS__) ^~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c:537:13: note: in expansion of macro 'PHP_JQ_ERR' PHP_JQ_ERR(E_WARNING, "undefined load json"); ^~~~~~~~~~/php-ext-jq_build/php-ext-jq/php_jq.h:31:28: error: too few arguments to function 'php_error_docref' #define PHP_JQ_ERR(e, ...) php_error_docref(NULL TSRMLS_CC, e, __VA_ARGS__) ^~~~~~~~~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c:537:13: note: in expansion of macro 'PHP_JQ_ERR' PHP_JQ_ERR(E_WARNING, "undefined load json"); ^~~~~~~~~~In file included from /php-ext-jq_build/php-ext-jq/jq.c:5:/usr/local/include/php/main/php.h:341:23: note: declared here PHPAPI ZEND_COLD void php_error_docref(const char *docref, int type, const char *format, ...) ^~~~~~~~~~~~~~~~In file included from /php-ext-jq_build/php-ext-jq/jq.c:11:/php-ext-jq_build/php-ext-jq/php_jq.h:31:50: error: expected ')' before 'TSRMLS_CC' #define PHP_JQ_ERR(e, ...) php_error_docref(NULL TSRMLS_CC, e, __VA_ARGS__) ^~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c:546:13: note: in expansion of macro 'PHP_JQ_ERR' PHP_JQ_ERR(E_WARNING, "filter compile error"); ^~~~~~~~~~/php-ext-jq_build/php-ext-jq/php_jq.h:31:28: error: too few arguments to function 'php_error_docref' #define PHP_JQ_ERR(e, ...) php_error_docref(NULL TSRMLS_CC, e, __VA_ARGS__) ^~~~~~~~~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c:546:13: note: in expansion of macro 'PHP_JQ_ERR' PHP_JQ_ERR(E_WARNING, "filter compile error"); ^~~~~~~~~~In file included from /php-ext-jq_build/php-ext-jq/jq.c:5:/usr/local/include/php/main/php.h:341:23: note: declared here PHPAPI ZEND_COLD void php_error_docref(const char *docref, int type, const char *format, ...) ^~~~~~~~~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c:551:5: warning: implicit declaration of function 'php_jq_filter'; did you mean 'zim_Jq_filter'? [-Wimplicit-function-declaration] php_jq_filter(&return_value, intern->jq, intern->json, flags TSRMLS_CC); ^~~~~~~~~~~~~ zim_Jq_filter/php-ext-jq_build/php-ext-jq/jq.c:551:65: error: expected ')' before 'TSRMLS_CC' php_jq_filter(&return_value, intern->jq, intern->json, flags TSRMLS_CC); ^~~~~~~~~~ )/php-ext-jq_build/php-ext-jq/jq.c: At top level:/php-ext-jq_build/php-ext-jq/jq.c:557:24: error: expected ';', ',' or ')' before 'TSRMLS_DC' long flags TSRMLS_DC) ^~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c: In function 'zim_Jq_parse':/php-ext-jq_build/php-ext-jq/jq.c:609:47: error: expected ')' before 'TSRMLS_CC' if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|l", ^~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c:609:9: error: too few arguments to function 'zend_parse_parameters' if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|l", ^~~~~~~~~~~~~~~~~~~~~In file included from /usr/local/include/php/main/php.h:35, from /php-ext-jq_build/php-ext-jq/jq.c:5:/usr/local/include/php/Zend/zend_API.h:304:22: note: declared here ZEND_API zend_result zend_parse_parameters(uint32_t num_args, const char *type_spec, ...); ^~~~~~~~~~~~~~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c:619:5: warning: implicit declaration of function 'php_jq_exec'; did you mean 'php_jq_init'? [-Wimplicit-function-declaration] php_jq_exec(&return_value, str, str_len, ^~~~~~~~~~~ php_jq_init/php-ext-jq_build/php-ext-jq/jq.c:620:42: error: expected ')' before 'TSRMLS_CC' filter, filter_len, flags TSRMLS_CC); ^~~~~~~~~~ )/php-ext-jq_build/php-ext-jq/jq.c: In function 'zim_Jq_parseFile':/php-ext-jq_build/php-ext-jq/jq.c:639:47: error: expected ')' before 'TSRMLS_CC' if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|l", ^~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c:639:9: error: too few arguments to function 'zend_parse_parameters' if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|l", ^~~~~~~~~~~~~~~~~~~~~In file included from /usr/local/include/php/main/php.h:35, from /php-ext-jq_build/php-ext-jq/jq.c:5:/usr/local/include/php/Zend/zend_API.h:304:22: note: declared here ZEND_API zend_result zend_parse_parameters(uint32_t num_args, const char *type_spec, ...); ^~~~~~~~~~~~~~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c:661:50: error: expected ')' before 'TSRMLS_CC' filter, filter_len, flags TSRMLS_CC); ^~~~~~~~~~ )/php-ext-jq_build/php-ext-jq/jq.c: At top level:/php-ext-jq_build/php-ext-jq/jq.c:722:52: error: expected ';', ',' or ')' before 'TSRMLS_DC' php_jq_new_ex(zend_class_entry *ce, php_jq_t **ptr TSRMLS_DC) ^~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c:744:33: error: expected ';', ',' or ')' before 'TSRMLS_DC' php_jq_new(zend_class_entry *ce TSRMLS_DC) ^~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c: In function 'zm_startup_jq':/php-ext-jq_build/php-ext-jq/jq.c:826:24: error: 'php_jq_new' undeclared (first use in this function); did you mean 'php_jq_ce'? ce.create_object = php_jq_new; ^~~~~~~~~~ php_jq_ce/php-ext-jq_build/php-ext-jq/jq.c:826:24: note: each undeclared identifier is reported only once for each function it appears in/php-ext-jq_build/php-ext-jq/jq.c:828:49: error: expected ')' before 'TSRMLS_CC' php_jq_ce = zend_register_internal_class(&ce TSRMLS_CC); ^~~~~~~~~~ )/php-ext-jq_build/php-ext-jq/jq.c:41:46: error: expected ')' before 'TSRMLS_CC' php_jq_ce, ZEND_STRS(#name)-1, value TSRMLS_CC) ^~~~~~~~~/php-ext-jq_build/php-ext-jq/jq.c:844:5: note: in expansion of macro 'PHP_JQ_CONST_LONG' PHP_JQ_CONST_LONG(RAW, JQ_OPT_RAW); ^~~~~~~~~~~~~~~~~
Apparently the TSRMLS_CC macro was removed from the extension interface:
Hi!
I recently tried to install php-ext-jq in a docker container (base image: php:8). During
make
with php 8 I get the following error:Apparently the
TSRMLS_CC
macro was removed from the extension interface:Downgrading to php 7.3 solves the problem.
To reproduce you can use the following Dockerfile:
Are you planning to make php-ext-jq compatible with php 8?
Thanks in advance!
The text was updated successfully, but these errors were encountered: