[Spam] [PATCH 1/2] kexec-tools: powerpc: Fix function signature of comparefunc()
Khalid Aziz
khalid at gonehiking.org
Wed Oct 22 08:15:07 PDT 2025
On 10/22/25 5:44 AM, John Paul Adrian Glaubitz wrote:
> Fixes the following build error on 32-bit PowerPC:
>
> kexec/arch/ppc/fs2dt.c: In function 'putnode':
> kexec/arch/ppc/fs2dt.c:338:51: error: passing argument 4 of 'scandir' from incompatible pointer type [-Wincompatible-pointer-types]
> 338 | numlist = scandir(pathname, &namelist, 0, comparefunc);
> | ^~~~~~~~~~~
> | |
> | int (*)(const void *, const void *)
>
> Signed-off-by: John Paul Adrian Glaubitz <glaubitz at physik.fu-berlin.de>
I sent out a suggested patch yesterday making these same changes. They make sense to me.
> ---
> kexec/arch/ppc/fs2dt.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/kexec/arch/ppc/fs2dt.c b/kexec/arch/ppc/fs2dt.c
> index fed499b..d03b995 100644
> --- a/kexec/arch/ppc/fs2dt.c
> +++ b/kexec/arch/ppc/fs2dt.c
> @@ -292,7 +292,8 @@ static void putprops(char *fn, struct dirent **nlist, int numlist)
> * Compare function used to sort the device-tree directories
> * This function will be passed to scandir.
> */
> -static int comparefunc(const void *dentry1, const void *dentry2)
> +static int comparefunc(const struct dirent **dentry1,
> + const struct dirent **dentry2)
> {
> char *str1 = (*(struct dirent **)dentry1)->d_name;
> char *str2 = (*(struct dirent **)dentry2)->d_name;
You can drop typecasting in above two lines as well:
- char *str1 = (*(struct dirent **)dentry1)->d_name;
- char *str2 = (*(struct dirent **)dentry2)->d_name;
+ char *str1 = (*dentry1)->d_name;
+ char *str2 = (*dentry2)->d_name;
--
Khalid
More information about the kexec
mailing list