From: Khem Raj Date: Sat, 17 May 2025 15:02:13 +0000 (-0700) Subject: kexec-tools: Fix ppc build X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=99c62c5d26e9a046276f4ccd9df307c7a25cd393;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git kexec-tools: Fix ppc build Compiler can analyse function pointer parameters now a days and it reports the mismatches, hence fixed. Signed-off-by: Khem Raj Signed-off-by: Mathieu Dubois-Briand --- diff --git a/meta/recipes-kernel/kexec/kexec-tools/0001-ppc-fs2dt-Match-function-signatures.patch b/meta/recipes-kernel/kexec/kexec-tools/0001-ppc-fs2dt-Match-function-signatures.patch new file mode 100644 index 0000000000..483e5195a9 --- /dev/null +++ b/meta/recipes-kernel/kexec/kexec-tools/0001-ppc-fs2dt-Match-function-signatures.patch @@ -0,0 +1,31 @@ +From 4a07e8f22b4f224dca79767e5cb86a0de91498dc Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 17 May 2025 07:48:50 -0700 +Subject: [PATCH] ppc/fs2dt: Match function signatures + +The prototypes of function pointers is analysed and +compiler finds the signature mismatches and complain about it. + +../kexec-tools-2.0.31/kexec/arch/ppc/fs2dt.c:338:44: error: incompatible function pointer types passing 'int (const void *, const void *)' to parameter of type 'int (*)(const struct dirent **, const struct dirent **)' [-Wincompatible-function-pointer-types] + 338 | numlist = scandir(pathname, &namelist, 0, comparefunc); + | ^~~~~~~~~~~ + +Upstream-Status: Submitted [https://lore.kernel.org/kexec/20250517145852.2488183-1-raj.khem@gmail.com/T/#u] +Signed-off-by: Khem Raj +--- + kexec/arch/ppc/fs2dt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kexec/arch/ppc/fs2dt.c b/kexec/arch/ppc/fs2dt.c +index fed499b..4952bfc 100644 +--- a/kexec/arch/ppc/fs2dt.c ++++ b/kexec/arch/ppc/fs2dt.c +@@ -292,7 +292,7 @@ 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; diff --git a/meta/recipes-kernel/kexec/kexec-tools_2.0.31.bb b/meta/recipes-kernel/kexec/kexec-tools_2.0.31.bb index d824859686..7333aa73c1 100644 --- a/meta/recipes-kernel/kexec/kexec-tools_2.0.31.bb +++ b/meta/recipes-kernel/kexec/kexec-tools_2.0.31.bb @@ -18,6 +18,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz file://0005-Disable-PIE-during-link.patch \ file://0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch \ file://0001-kexec.c-add-MFD_NOEXEC_SEAL-flag-explicitly.patch \ + file://0001-ppc-fs2dt-Match-function-signatures.patch \ " SRC_URI[sha256sum] = "ddaaa65b02b4f8aa9222586b1f26565b93a4baeffd35bcbd523f15fae7aa4897" @@ -27,6 +28,9 @@ inherit autotools update-rc.d systemd export LDFLAGS = "-L${STAGING_LIBDIR}" EXTRA_OECONF = " --with-zlib=yes" +# purgatory uses -msoft-float for ppc32/ppc64, it does not go with -maltivec +TUNE_CCARGS:remove:powerpc = "-maltivec" + do_compile:prepend() { # Remove the prepackaged config.h from the source tree as it overrides # the same file generated by configure and placed in the build tree