git: b808c8521ddb - main - devel/pecl-vld: Fix build with php84 (8.4.0beta3+)
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 05 Sep 2024 06:20:28 UTC
The branch main has been updated by sunpoet: URL: https://cgit.FreeBSD.org/ports/commit/?id=b808c8521ddb527b95246e3744b7f2c1c6cece97 commit b808c8521ddb527b95246e3744b7f2c1c6cece97 Author: Po-Chuan Hsieh <sunpoet@FreeBSD.org> AuthorDate: 2024-09-05 05:25:51 +0000 Commit: Po-Chuan Hsieh <sunpoet@FreeBSD.org> CommitDate: 2024-09-05 06:17:53 +0000 devel/pecl-vld: Fix build with php84 (8.4.0beta3+) Obtained from: https://github.com/derickr/vld/commit/dc56f73a25b0230745afb5523871f2e8dd33fccd Reference: https://pkg-status.freebsd.org/beefy22/data/140amd64-default/b3cf46924d98/logs/php84-pecl-vld-0.18.0.log --- devel/pecl-vld/files/patch-php84 | 83 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 6 deletions(-) diff --git a/devel/pecl-vld/files/patch-php84 b/devel/pecl-vld/files/patch-php84 index 522e53c134ea..13d955a790ba 100644 --- a/devel/pecl-vld/files/patch-php84 +++ b/devel/pecl-vld/files/patch-php84 @@ -1,4 +1,5 @@ Obtained from: https://github.com/derickr/vld/commit/df1c52c4cb62e5ff31e1b72e3f11df9a45ee567a + https://github.com/derickr/vld/commit/dc56f73a25b0230745afb5523871f2e8dd33fccd --- srm_oparray.c.orig 2022-09-16 08:00:47 UTC +++ srm_oparray.c @@ -44,21 +45,91 @@ Obtained from: https://github.com/derickr/vld/commit/df1c52c4cb62e5ff31e1b72e3f1 if (flags & EXT_VAL) { #if PHP_VERSION_ID >= 70300 if (op.opcode == ZEND_CATCH) { -@@ -1081,6 +1102,14 @@ int vld_find_jumps(zend_op_array *opa, unsigned int po - jumps[0] = VLD_JMP_EXIT; +@@ -1082,9 +1103,19 @@ int vld_find_jumps(zend_op_array *opa, unsigned int po *jump_count = 1; return 1; -+ + +#if PHP_VERSION_ID >= 80400 + } else if (opcode.opcode == ZEND_JMP_FRAMELESS) { -+ jumps[0] = VLD_ZNODE_JMP_LINE(opcode.op2, position, base_address); -+ jumps[1] = position + 1; ++ jumps[0] = position + 1; ++ jumps[1] = VLD_ZNODE_JMP_LINE(opcode.op2, position, base_address); + *jump_count = 2; + return 1; +#endif - ++ } else if ( opcode.opcode == ZEND_GENERATOR_RETURN || ++#if PHP_VERSION_ID < 80400 + opcode.opcode == ZEND_EXIT || ++#endif + opcode.opcode == ZEND_THROW || + #if PHP_VERSION_ID >= 80000 + opcode.opcode == ZEND_MATCH_ERROR || +@@ -1094,6 +1125,48 @@ int vld_find_jumps(zend_op_array *opa, unsigned int po + jumps[0] = VLD_JMP_EXIT; + *jump_count = 1; + return 1; ++ } else if ( ++ opcode.opcode == ZEND_INIT_FCALL ++ ) { ++ zval *func_name = RT_CONSTANT(&opa->opcodes[position], opcode.op2); ++ if (zend_string_equals_literal(Z_PTR_P(func_name), "exit")) { ++ int level = 0; ++ uint32_t start = position + 1; ++ ++ for (;;) { ++ switch (opa->opcodes[start].opcode) { ++ case ZEND_INIT_FCALL: ++ case ZEND_INIT_FCALL_BY_NAME: ++ case ZEND_INIT_NS_FCALL_BY_NAME: ++ case ZEND_INIT_DYNAMIC_CALL: ++ case ZEND_INIT_USER_CALL: ++ case ZEND_INIT_METHOD_CALL: ++ case ZEND_INIT_STATIC_METHOD_CALL: ++#if PHP_VERSION_ID >= 80400 ++ case ZEND_INIT_PARENT_PROPERTY_HOOK_CALL: ++#endif ++ case ZEND_NEW: ++ level++; ++ break; ++ case ZEND_DO_FCALL: ++ case ZEND_DO_FCALL_BY_NAME: ++ case ZEND_DO_ICALL: ++ case ZEND_DO_UCALL: ++ if (level == 0) { ++ goto done; ++ } ++ level--; ++ break; ++ } ++ start++; ++ } ++ done: ++ ZEND_ASSERT(opa->opcodes[start].opcode == ZEND_DO_ICALL); ++ jumps[0] = VLD_JMP_EXIT; ++ *jump_count = 1; ++ return 1; ++ } ++ + #if PHP_VERSION_ID >= 70200 + } else if ( + # if PHP_VERSION_ID >= 80000 +@@ -1233,6 +1306,7 @@ void vld_analyse_branch(zend_op_array *opa, unsigned i + break; + } + ++#if PHP_VERSION_ID < 80400 + /* See if we have an exit instruction */ + if (opa->opcodes[position].opcode == ZEND_EXIT) { + VLD_PRINT(1, "Exit found\n"); +@@ -1240,6 +1314,7 @@ void vld_analyse_branch(zend_op_array *opa, unsigned i + branch_info->branches[position].start_lineno = opa->opcodes[position].lineno; + break; + } ++#endif + /* See if we have a return instruction */ + if ( + opa->opcodes[position].opcode == ZEND_RETURN --- srm_oparray.h.orig 2022-09-16 08:00:47 UTC +++ srm_oparray.h @@ -57,6 +57,8 @@