From e86cb4eabd0f16b7ca73517f78b30f140ac7d80a Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 16 Aug 2023 17:48:06 -0700 Subject: python3-protobuf: Fix build errors seen with clang Signed-off-by: Khem Raj --- ....c-Cast-uintptr_t-types-to-upb_MessageDef.patch | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-protobuf/0001-message.c-Cast-uintptr_t-types-to-upb_MessageDef.patch (limited to 'meta-python/recipes-devtools/python/python3-protobuf') diff --git a/meta-python/recipes-devtools/python/python3-protobuf/0001-message.c-Cast-uintptr_t-types-to-upb_MessageDef.patch b/meta-python/recipes-devtools/python/python3-protobuf/0001-message.c-Cast-uintptr_t-types-to-upb_MessageDef.patch new file mode 100644 index 0000000000..89315e3a7d --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-protobuf/0001-message.c-Cast-uintptr_t-types-to-upb_MessageDef.patch @@ -0,0 +1,57 @@ +From 8ce4b50b210d3c0f8de40156d4ba7827bfe16b21 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 16 Aug 2023 17:36:19 -0700 +Subject: [PATCH] message.c: Cast uintptr_t types to upb_MessageDef + +This fixes build with clang + +python/message.c:1238:49: error: incompatible integer to pointer conversion passing 'uintptr_t' (aka 'unsigned long') to parameter of type 'const upb_MessageDef *' (aka 'const struct upb_MessageDef *') [-Wint-conversion] + 1238 | upb_MessageDef_MiniTable(other->def), + | ^~~~~~~~~~ +/mnt/b/yoe/master/build/tmp/work/cortexa72-cortexa53-crypto-yoe-linux/python3-protobuf/4.24.0/protobuf-4.24.0/upb/reflection/message_def.h:138:69: note: passing argument to parameter 'm' here + 138 | const upb_MiniTable* upb_MessageDef_MiniTable(const upb_MessageDef* m); + | ^ +python/message.c:1609:69: error: incompatible integer to pointer conversion passing 'uintptr_t' (aka 'unsigned long') to parameter of type 'const upb_MessageDef *' (aka 'const struct upb_MessageDef *') [-Wint-conversion] + 1609 | upb_Message_DeepClone(self->ptr.msg, upb_MessageDef_MiniTable(self->def), + | ^~~~~~~~~ +/mnt/b/yoe/master/build/tmp/work/cortexa72-cortexa53-crypto-yoe-linux/python3-protobuf/4.24.0/protobuf-4.24.0/upb/reflection/message_def.h:138:69: note: passing argument to parameter 'm' here + 138 | const upb_MiniTable* upb_MessageDef_MiniTable(const upb_MessageDef* m); + | ^ +python/message.c:1611:44: error: incompatible integer to pointer conversion passing 'uintptr_t' (aka 'unsigned long') to parameter of type 'const upb_MessageDef *' (aka 'const struct upb_MessageDef *') [-Wint-conversion] + 1611 | PyObject* ret = PyUpb_Message_Get(clone, self->def, arena); + | ^~~~~~~~~ + +Upstream-Status: Submitted [https://github.com/protocolbuffers/upb/pull/1492] +Signed-off-by: Khem Raj +--- + python/message.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/python/message.c b/python/message.c +index a01ce16..c418b84 100644 +--- a/python/message.c ++++ b/python/message.c +@@ -1235,7 +1235,7 @@ static PyObject* PyUpb_Message_CopyFrom(PyObject* _self, PyObject* arg) { + Py_DECREF(tmp); + + upb_Message_DeepCopy(self->ptr.msg, other->ptr.msg, +- upb_MessageDef_MiniTable(other->def), ++ upb_MessageDef_MiniTable((const upb_MessageDef*)other->def), + PyUpb_Arena_Get(self->arena)); + PyUpb_Message_SyncSubobjs(self); + +@@ -1606,9 +1606,9 @@ PyObject* DeepCopy(PyObject* _self, PyObject* arg) { + + PyObject* arena = PyUpb_Arena_New(); + upb_Message* clone = +- upb_Message_DeepClone(self->ptr.msg, upb_MessageDef_MiniTable(self->def), ++ upb_Message_DeepClone(self->ptr.msg, upb_MessageDef_MiniTable((const upb_MessageDef*)self->def), + PyUpb_Arena_Get(arena)); +- PyObject* ret = PyUpb_Message_Get(clone, self->def, arena); ++ PyObject* ret = PyUpb_Message_Get(clone, (const upb_MessageDef*)self->def, arena); + Py_DECREF(arena); + + return ret; +-- +2.41.0 + -- cgit v1.2.3-54-g00ecf