summary refs log tree commit diff
diff options
context:
space:
mode:
authorJanne Heß <dasJ@users.noreply.github.com>2023-11-02 16:40:04 +0100
committerGitHub <noreply@github.com>2023-11-02 16:40:04 +0100
commitfefc2e26bb2317bf4c00364deb3cf714d083a844 (patch)
treeda0de7a5277a00ee3b5fa96f0b16a161352610dd
parent677e25fcd22349b0e66f0bceee9080c0ac129bea (diff)
parentaa6ed10765676a190e90420bdd07195e6fde73a0 (diff)
downloadnixpkgs-fefc2e26bb2317bf4c00364deb3cf714d083a844.tar
nixpkgs-fefc2e26bb2317bf4c00364deb3cf714d083a844.tar.gz
nixpkgs-fefc2e26bb2317bf4c00364deb3cf714d083a844.tar.bz2
nixpkgs-fefc2e26bb2317bf4c00364deb3cf714d083a844.tar.lz
nixpkgs-fefc2e26bb2317bf4c00364deb3cf714d083a844.tar.xz
nixpkgs-fefc2e26bb2317bf4c00364deb3cf714d083a844.tar.zst
nixpkgs-fefc2e26bb2317bf4c00364deb3cf714d083a844.zip
Merge pull request #265003 from stigtsp/perl/fix-xml-libxml-darwin
[staging-next] perlPackages.XMLLibXML: fix darwin build
-rw-r--r--pkgs/development/perl-modules/XML-LibXML-clang16.patch47
-rw-r--r--pkgs/top-level/perl-packages.nix3
2 files changed, 50 insertions, 0 deletions
diff --git a/pkgs/development/perl-modules/XML-LibXML-clang16.patch b/pkgs/development/perl-modules/XML-LibXML-clang16.patch
new file mode 100644
index 00000000000..9a19e32bc40
--- /dev/null
+++ b/pkgs/development/perl-modules/XML-LibXML-clang16.patch
@@ -0,0 +1,47 @@
+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/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index e5a54018ed8..1a70e04d56f 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -28473,6 +28473,9 @@ with self; {
     SKIP_SAX_INSTALL = 1;
     buildInputs = [ AlienBuild AlienLibxml2 ]
       ++ lib.optionals stdenv.isDarwin (with pkgs; [ libiconv zlib ]);
+    patches = [
+      ../development/perl-modules/XML-LibXML-clang16.patch
+    ];
     # Remove test that fails after LibXML 2.11 upgrade
     postPatch = ''
       rm t/35huge_mode.t