From 3ec3199fbb81c7115f3f70b03aff4350b8d5660a Mon Sep 17 00:00:00 2001 From: Greg Hogan Date: Thu, 17 Jul 2025 17:17:59 +0000 Subject: [PATCH] gnu: perl-xml-libxml: Fix build with clang 16+. * gnu/packages/patches/perl-xml-libxml-fix-function-prototypes.patch: New file. * gnu/local.mk (dist_patch_DATA): Register patch. * gnu/packages/xml.scm (perl-xml-libxml)[origin]: Apply patch. Change-Id: Ib0be83bbf149af6c3f8a477c24159fbd975fc06b Signed-off-by: Andreas Enge --- gnu/local.mk | 1 + ...l-xml-libxml-fix-function-prototypes.patch | 49 +++++++++++++++++++ gnu/packages/xml.scm | 4 +- 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/perl-xml-libxml-fix-function-prototypes.patch diff --git a/gnu/local.mk b/gnu/local.mk index 2054a9d39a5ba268ee9b7d11f3b3242eb8b7a4e2..0b5d801fa3735cb5a9304f46728b418968dc7495 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2106,6 +2106,7 @@ dist_patch_DATA = \ %D%/packages/patches/perl-reproducible-build-date.patch \ %D%/packages/patches/perl-www-curl-fix-struct-void.patch \ %D%/packages/patches/perl-www-curl-remove-symbol.patch \ + %D%/packages/patches/perl-xml-libxml-fix-function-prototypes.patch \ %D%/packages/patches/phoronix-test-suite-fsdg.patch \ %D%/packages/patches/picprog-non-intel-support.patch \ %D%/packages/patches/pidgin-add-search-path.patch \ diff --git a/gnu/packages/patches/perl-xml-libxml-fix-function-prototypes.patch b/gnu/packages/patches/perl-xml-libxml-fix-function-prototypes.patch new file mode 100644 index 0000000000000000000000000000000000000000..5c52dbd648b01bd79ef93aa4d11960d51b60c194 --- /dev/null +++ b/gnu/packages/patches/perl-xml-libxml-fix-function-prototypes.patch @@ -0,0 +1,49 @@ +Patch from https://github.com/shlomif/perl-XML-LibXML/commit/87517859 + +From 8751785951fbde48ffa16a476da3e4adb2bbcde5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 16 Jan 2023 18:50:10 -0800 +Subject: [PATCH] libxml-mm: Fix function prototypes in function pointers + +This is now detected with latest clang16+ + +Fixes +error: incompatible function pointer types passing 'void (void *, void *, xmlChar *)' (aka 'void (void *, void *, unsigned char *)') to parameter of type 'xmlHashScanner' (aka 'void (*)(void *, void *, const unsigned char *)') [-Wincompatible-function-pointer-types] + xmlHashScan(r, PmmRegistryDumpHashScanner, NULL); + +Signed-off-by: Khem Raj +--- + perl-libxml-mm.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/perl-libxml-mm.c b/perl-libxml-mm.c +index a3e78a2..ec2b5ea 100644 +--- a/perl-libxml-mm.c ++++ b/perl-libxml-mm.c +@@ -121,7 +121,7 @@ PmmFreeHashTable(xmlHashTablePtr table) + extern SV* PROXY_NODE_REGISTRY_MUTEX; + + /* Utility method used by PmmDumpRegistry */ +-void PmmRegistryDumpHashScanner(void * payload, void * data, xmlChar * name) ++void PmmRegistryDumpHashScanner(void * payload, void * data, const xmlChar * name) + { + LocalProxyNodePtr lp = (LocalProxyNodePtr) payload; + ProxyNodePtr node = (ProxyNodePtr) lp->proxy; +@@ -215,7 +215,7 @@ PmmRegisterProxyNode(ProxyNodePtr proxy) + /* PP: originally this was static inline void, but on AIX the compiler + did not chew it, so I'm removing the inline */ + static void +-PmmRegistryHashDeallocator(void *payload, xmlChar *name) ++PmmRegistryHashDeallocator(void *payload, const xmlChar *name) + { + Safefree((LocalProxyNodePtr) payload); + } +@@ -279,7 +279,7 @@ PmmRegistryREFCNT_dec(ProxyNodePtr proxy) + * internal, used by PmmCloneProxyNodes + */ + void * +-PmmRegistryHashCopier(void *payload, xmlChar *name) ++PmmRegistryHashCopier(void *payload, const xmlChar *name) + { + ProxyNodePtr proxy = ((LocalProxyNodePtr) payload)->proxy; + LocalProxyNodePtr lp; diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index e6c973428f0174e5e6b3d966b836abddb15add78..0911965680c83e91692e6f91bdc3e7238c3cc87f 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -655,7 +655,9 @@ with XML in Perl. libxml-perl software works in combination with "XML-LibXML-" version ".tar.gz")) (sha256 (base32 - "1ks69xymv6zkj7hvaymjvb78ch81abri7kg4zrwxhdfsqb8a9g7h")))) + "1ks69xymv6zkj7hvaymjvb78ch81abri7kg4zrwxhdfsqb8a9g7h")) + ;; Remove patch with update to version 2.0210. + (patches (search-patches "perl-xml-libxml-fix-function-prototypes.patch")))) (build-system perl-build-system) (propagated-inputs (list perl-xml-namespacesupport perl-xml-sax))