mirror of
https://github.com/openwrt/packages.git
synced 2025-08-04 04:00:37 +00:00
This makes it in sync with Python packages. Python packages has its own place in /lang/python Perl does not, so this fixes it. Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
89 lines
3.0 KiB
Diff
89 lines
3.0 KiB
Diff
Description: fix multiple build issues with gcc 14.
|
||
Multiple callbacks are cast due to otherwise incompatible pointer
|
||
types. The target pointer cb->proc cannot really see its type adjusted
|
||
for two reasons. First, it is declared in the libsasl2, and changing
|
||
it might cause an ABI/API breakage. Second, the different callbacks
|
||
also have different function signatures anyway.
|
||
.
|
||
Another issue seems to be a casting error while trying to set an IV:
|
||
.
|
||
XS.xs:1886:40: error:
|
||
initialization of ‘IV’ {aka ‘long int’} from ‘int *’
|
||
makes integer from pointer without a cast [-Wint-conversion]
|
||
1886 | XPUSHi((int *)value);
|
||
| ^
|
||
/usr/lib/x86_64-linux-gnu/perl/5.38/CORE/pp.h:428:23: note: in definition of macro ‘TARGi’
|
||
428 | IV TARGi_iv = i; \
|
||
| ^
|
||
XS.xs:1886:33: note: in expansion of macro ‘XPUSHi’
|
||
1886 | XPUSHi((int *)value);
|
||
| ^~~~~~
|
||
.
|
||
It is unclear to me what was the motivation for the initial wrong type.
|
||
|
||
Author: Étienne Mollier <emollier@debian.org>
|
||
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1075146
|
||
Forwarded: no
|
||
Last-Update: 2024-07-26
|
||
---
|
||
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
||
--- a/XS.xs
|
||
+++ b/XS.xs
|
||
@@ -892,39 +892,39 @@ void AddCallback(SV *action, struct _per
|
||
case SASL_CB_USER:
|
||
case SASL_CB_AUTHNAME:
|
||
case SASL_CB_LANGUAGE:
|
||
- cb->proc = PerlCallback;
|
||
+ cb->proc = (int (*)(void))PerlCallback;
|
||
break;
|
||
|
||
case SASL_CB_PASS:
|
||
- cb->proc = PerlCallbackSecret;
|
||
+ cb->proc = (int (*)(void))PerlCallbackSecret;
|
||
break;
|
||
|
||
case SASL_CB_GETREALM:
|
||
- cb->proc = PerlCallbackRealm;
|
||
+ cb->proc = (int (*)(void))PerlCallbackRealm;
|
||
break;
|
||
|
||
case SASL_CB_ECHOPROMPT:
|
||
case SASL_CB_NOECHOPROMPT:
|
||
break;
|
||
case SASL_CB_PROXY_POLICY:
|
||
- cb->proc = PerlCallbackAuthorize;
|
||
+ cb->proc = (int (*)(void))PerlCallbackAuthorize;
|
||
break;
|
||
|
||
case SASL_CB_CANON_USER:
|
||
- cb->proc = PerlCallbackCanonUser;
|
||
+ cb->proc = (int (*)(void))PerlCallbackCanonUser;
|
||
break;
|
||
#ifdef SASL2
|
||
case SASL_CB_SERVER_USERDB_CHECKPASS:
|
||
- cb->proc = PerlCallbackServerCheckPass;
|
||
+ cb->proc = (int (*)(void))PerlCallbackServerCheckPass;
|
||
break;
|
||
|
||
case SASL_CB_SERVER_USERDB_SETPASS:
|
||
- cb->proc = PerlCallbackServerSetPass;
|
||
+ cb->proc = (int (*)(void))PerlCallbackServerSetPass;
|
||
break;
|
||
#else
|
||
// SASL 1 Servercallbacks:
|
||
case SASL_CB_SERVER_GETSECRET:
|
||
- cb->proc = PerlCallbackGetSecret;
|
||
+ cb->proc = (int (*)(void))PerlCallbackGetSecret;
|
||
break;
|
||
case SASL_CB_SERVER_PUTSECRET:
|
||
// Not implemented yet maybe TODO, if ever needed
|
||
@@ -1883,7 +1883,7 @@ PPCODE:
|
||
break;
|
||
case SASL_SSF:
|
||
case SASL_MAXOUTBUF:
|
||
- XPUSHi((int *)value);
|
||
+ XPUSHi((long int)value);
|
||
break;
|
||
#ifdef SASL2
|
||
case SASL_IPLOCALPORT:
|