From: Baruch Siach via buildroot <buildroot@buildroot.org>
To: Thomas Perale via buildroot <buildroot@buildroot.org>
Cc: "Alexis Lothoré" <alexis.lothore@bootlin.com>,
"Thomas Perale" <thomas.perale@mind.be>
Subject: Re: [Buildroot] [PATCH v3] package/php-lua: fix build with PHP8/GCC14
Date: Mon, 08 Sep 2025 14:20:22 +0300 [thread overview]
Message-ID: <87ldmpgphl.fsf@tarshish> (raw)
In-Reply-To: <20250908105540.681404-1-thomas.perale@mind.be> (Thomas Perale via buildroot's message of "Mon, 8 Sep 2025 12:55:40 +0200")
Hi Thomas,
On Mon, Sep 08 2025, Thomas Perale via buildroot wrote:
> In reply of:
>> On both Buildroot 2025.02.x and master branch, php-lua build fails on
>> the following error:
>>
>> lua.c:862:44: error: assignment to 'zend_object_write_property_t' {aka
>> 'struct _zval_struct * (*)(struct _zend_object *, struct _zend_string *,
>> struct _zval_struct *, void **)'} from incompatible pointer type 'void
>> (*)(zval *, zval *, zval *, void **)' {aka 'void (*)(struct _zval_struct
>> *, struct _zval_struct *, struct _zval_struct *, void **)'}
>> [-Wincompatible-pointer-types]
>> 862 | lua_object_handlers.write_property =
>> php_lua_write_property;
>> | ^
>> lua.c:863:44: error: assignment to 'zend_object_read_property_t' {aka
>> 'struct _zval_struct * (*)(struct _zend_object *, struct _zend_string *,
>> int, void **, struct _zval_struct *)'} from incompatible pointer type
>> 'zval * (*)(zval *, zval *, int, void **, zval *)' {aka 'struct
>> _zval_struct * (*)(struct _zval_struct *, struct _zval_struct *, int,
>> void **, struct _zval_struct *)'} [-Wincompatible-pointer-types]
>> 863 | lua_object_handlers.read_property =
>> php_lua_read_property;
>> | ^
>> make[2]: *** [Makefile:214: lua.lo] Error 1
>>
>> The error can be reproduced with the following minimal defconfig:
>>
>> BR2_arm=y
>> BR2_cortex_a9=y
>> BR2_ARM_ENABLE_NEON=y
>> BR2_ARM_ENABLE_VFP=y
>> BR2_ARM_FPU_NEON=y
>> BR2_TOOLCHAIN_EXTERNAL=y
>> BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
>> BR2_PACKAGE_LUA=y
>> BR2_PACKAGE_PHP=y
>> BR2_PACKAGE_PHP_LUA=y
>>
>> This build failure is the result of two events/conditions:
>> - the update to PHP8 has changed the prototype for
>> zend_object_read_property_t (see [1]). But at this time, php-lua just
>> generated a new warning (-Wincompatible-pointer-types)
>> - using bootlin bleeding-edge toolchain brings in GCC14, which now turns
>> this warning into a systematic error (see [2])
>>
>> This issue is still present on the upstream repository, but it has been
>> fixed on one of its forks. Bring the relevant patch from the fork to
>> allow building php-lua.
>>
>> [1] https://github.com/php/php-src/commit/91ef4124e56
>> [2] https://gcc.gnu.org/gcc-14/porting_to.html#incompatible-pointer-types
>>
>> Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
>
> Applied to 2025.02.x & 2025.05.x. Thanks
Not in 2025.02.x as of commit 2d5c298d5a35 ("package/iperf3: add patch
to fix CVE-2025-54350").
Also not in 2025.05.x as of commit 6f191b4dcc80 ("package/cpp-httplib:
add patch for CVE-2025-46728").
baruch
>> ---
>> Changes in v3:
>> - Added empty Upstream tag
>> - Link to v2: https://lore.kernel.org/r/20250806-php-lua-v2-1-a73faad939e9@bootlin.com
>>
>> Changes in v2:
>> - update commit title
>> - add more details about the conditions leading to the build failure
>> - add minimal defconfig
>> - Link to v1: https://lore.kernel.org/r/20250806-php-lua-v1-1-e1f524fed0a5@bootlin.com
>> ---
>> ...-write-properly-read-property-was-changed.patch | 79 ++++++++++++++++++++++
>> 1 file changed, 79 insertions(+)
>>
>> diff --git
>> a/package/php-lua/0003-php8-Signature-of-write-properly-read-property-was-changed.patch
>> b/package/php-lua/0003-php8-Signature-of-write-properly-read-property-was-changed.patch
>> new file mode 100644
>> index 0000000000000000000000000000000000000000..c1357b591b5b794b1eecf7cb02609a21de615b4c
>> --- /dev/null
>> +++ b/package/php-lua/0003-php8-Signature-of-write-properly-read-property-was-changed.patch
>> @@ -0,0 +1,79 @@
>> +From de1068d634519abf2461dac9427b5ff24b6603af Mon Sep 17 00:00:00 2001
>> +From: Mikhail Galanin <mikhail.galanin@team.bumble.com>
>> +Date: Tue, 24 Aug 2021 08:28:47 +0100
>> +Subject: [PATCH] php8: Signature of write_property/read_property was changed
>> + in https://github.com/php/php-src/commit/91ef4124e56
>> +
>> +Taken from https://github.com/badoo/php-lua/pull/8
>> +
>> +Upstream: n/a
>> +Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
>> +---
>> + lua.c | 28 ++++++++++++++--------------
>> + 1 file changed, 14 insertions(+), 14 deletions(-)
>> +
>> +diff --git a/lua.c b/lua.c
>> +index edc2868..32c1471 100755
>> +--- a/lua.c
>> ++++ b/lua.c
>> +@@ -229,46 +229,46 @@ zend_object *php_lua_create_object(zend_class_entry *ce)
>> +
>> + /** {{{ static zval * php_lua_read_property(zval *object, zval *member, int type)
>> + */
>> +-zval *php_lua_read_property(zval *object, zval *member, int type, void **cache_slot, zval *rv){
>> +- lua_State *L = (Z_LUAVAL_P(object))->L;
>> +- zend_string *str_member;
>> ++zval *php_lua_read_property(zend_object *object, zend_string *member, int type, void **cache_slot, zval *rv){
>> ++ lua_State *L = php_lua_obj_from_obj(object)->L;
>> +
>> + if (type != BP_VAR_R) {
>> + ZVAL_NULL(rv);
>> + return rv;
>> + }
>> +
>> +- str_member = zval_get_string(member);
>> + #if (LUA_VERSION_NUM < 502)
>> +- lua_getfield(L, LUA_GLOBALSINDEX, ZSTR_VAL(str_member));
>> ++ lua_getfield(L, LUA_GLOBALSINDEX, ZSTR_VAL(member));
>> + #else
>> +- lua_getglobal(L, ZSTR_VAL(str_member));
>> ++ lua_getglobal(L, ZSTR_VAL(member));
>> + #endif
>> +- zend_string_release(str_member);
>> +
>> +- php_lua_get_zval_from_lua(L, -1, object, rv);
>> ++ zval lua_zval_object;
>> ++ ZVAL_OBJ(&lua_zval_object, object);
>> ++
>> ++ php_lua_get_zval_from_lua(L, -1, &lua_zval_object, rv);
>> + lua_pop(L, 1);
>> ++
>> + return rv;
>> + }
>> + /* }}} */
>> +
>> + /** {{{ static void php_lua_write_property(zval *object, zval *member, zval *value)
>> + */
>> +-static void php_lua_write_property(zval *object, zval *member, zval *value, void ** key) {
>> +- lua_State *L = (Z_LUAVAL_P(object))->L;
>> +- zend_string *str_member = zval_get_string(member);
>> ++static zval* php_lua_write_property(zend_object *object, zend_string *member, zval *value, void ** key) {
>> ++ lua_State *L = php_lua_obj_from_obj(object)->L;
>> +
>> + #if (LUA_VERSION_NUM < 502)
>> +- php_lua_send_zval_to_lua(L, member);
>> ++ lua_pushlstring(L, ZSTR_VAL(val), ZSTR_LEN(val));
>> + php_lua_send_zval_to_lua(L, value);
>> +
>> + lua_settable(L, LUA_GLOBALSINDEX);
>> + #else
>> + php_lua_send_zval_to_lua(L, value);
>> +- lua_setglobal(L, Z_STRVAL_P(member));
>> ++ lua_setglobal(L, ZSTR_VAL(member));
>> + #endif
>> +
>> +- zend_string_release(str_member);
>> ++ return value;
>> + }
>> + /* }}} */
>> +
>>
>> ---
>> base-commit: 2fd520c8d52b9e0ed5e26343813fdd8dbcadb45f
>> change-id: 20250806-php-lua-39895d4fe179
>>
>> Best regards,
>> --
>> Alexis Lothoré, Bootlin
>> Embedded Linux and Kernel engineering
>> https://bootlin.com
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot@buildroot.org
>> https://lists.buildroot.org/mailman/listinfo/buildroot
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2025-09-08 11:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-11 7:52 [Buildroot] [PATCH v3] package/php-lua: fix build with PHP8/GCC14 Alexis Lothoré via buildroot
2025-08-24 15:36 ` Romain Naour via buildroot
2025-08-25 14:53 ` Alexis Lothoré via buildroot
2025-09-06 22:17 ` Romain Naour via buildroot
2025-09-08 6:40 ` Alexis Lothoré via buildroot
2025-09-08 10:55 ` Thomas Perale via buildroot
2025-09-08 11:20 ` Baruch Siach via buildroot [this message]
2025-09-08 13:13 ` Thomas Perale via buildroot
2025-09-08 13:32 ` Baruch Siach via buildroot
2025-09-10 8:36 ` Romain Naour via buildroot
2025-09-19 12:56 ` Thomas Perale via buildroot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ldmpgphl.fsf@tarshish \
--to=buildroot@buildroot.org \
--cc=alexis.lothore@bootlin.com \
--cc=baruch@tkos.co.il \
--cc=thomas.perale@mind.be \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.