summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/perl-xml-libxml-fix-function-prototypes.patch
diff options
context:
space:
mode:
authorGreg Hogan <code@greghogan.com>2025-07-17 17:17:59 +0000
committerAndreas Enge <andreas@enge.fr>2025-07-18 20:17:54 +0200
commit3ec3199fbb81c7115f3f70b03aff4350b8d5660a (patch)
tree6a68ee6aa6fcd1969333f9b2d2142dcbbecf2f32 /gnu/packages/patches/perl-xml-libxml-fix-function-prototypes.patch
parent0c8ef1e38f1acc1adb9a54d3e03ce66a25e6836e (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>
Diffstat (limited to 'gnu/packages/patches/perl-xml-libxml-fix-function-prototypes.patch')
-rw-r--r--gnu/packages/patches/perl-xml-libxml-fix-function-prototypes.patch49
1 files changed, 49 insertions, 0 deletions
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;