diff options
author | Greg Hogan <code@greghogan.com> | 2025-07-17 17:17:59 +0000 |
---|---|---|
committer | Andreas Enge <andreas@enge.fr> | 2025-07-17 22:21:16 +0200 |
commit | afc0ba71e83c8bec13caba5c45d5588d2b168429 (patch) | |
tree | 32de3c29018a6edce5fd7dd6e0e207d341189e22 | |
parent | b22450caab3099190956d42296f3d09cf19a24fa (diff) |
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 <andreas@enge.fr>
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/patches/perl-xml-libxml-fix-function-prototypes.patch | 49 | ||||
-rw-r--r-- | gnu/packages/xml.scm | 4 |
3 files changed, 53 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 48eefdd61a..9237d62d79 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2107,6 +2107,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 0000000000..5c52dbd648 --- /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 <raj.khem@gmail.com> +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 <raj.khem@gmail.com> +--- + 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 e6c973428f..0911965680 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)) |