From e3cae9e1ca4765da825c9ee94760e12f5c6c142a Mon Sep 17 00:00:00 2001 From: Florian Larysch Date: Wed, 7 May 2025 19:07:41 +0200 Subject: [PATCH] package/cpio: fix build with GCC 15 On systems running GCC 15, host-cpio will fail to build with errors like copyout.c:646:12: error: too many arguments to function 'xstat'; expected 0, have 2 and main.c:407:13: error: assignment to 'int (*)(void)' from incompatible pointer type 'int (*)(const char * restrict, struct stat * restrict)' [-Wincompatible-pointer-types] This was reported[1] and fixed upstream, but there is no new release yet. Import the upstream patch for now. Fixes: https://autobuild.buildroot.org/results/a10c5f2b0f9cb05b2550fe97f1133deaaac97277/ (and many more) [1] https://lists.gnu.org/archive/html/bug-cpio/2025-05/msg00000.html Signed-off-by: Florian Larysch [Julien: - add missing "Signed-off-by:" in patch to fix check-package error - change "Upstream:" link to use the commitdiff in patch - add "Fixes:" in commit log ] Signed-off-by: Julien Olivain --- package/cpio/0001-Fix-c23-conformity.patch | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 package/cpio/0001-Fix-c23-conformity.patch diff --git a/package/cpio/0001-Fix-c23-conformity.patch b/package/cpio/0001-Fix-c23-conformity.patch new file mode 100644 index 0000000000..9421f28507 --- /dev/null +++ b/package/cpio/0001-Fix-c23-conformity.patch @@ -0,0 +1,48 @@ +From f42137f5ab9cf07d1e62edc05e0212688d3ebaa2 Mon Sep 17 00:00:00 2001 +From: Sergey Poznyakoff +Date: Tue, 6 May 2025 21:02:43 +0300 +Subject: [PATCH] Fix c23 conformity + +Upstream: https://git.savannah.gnu.org/gitweb/?p=cpio.git;a=commitdiff;h=f42137f5ab9cf07d1e62edc05e0212688d3ebaa2 +Signed-off-by: Sergey Poznyakoff +Signed-off-by: Florian Larysch +--- + src/extern.h | 4 ++-- + src/global.c | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/extern.h b/src/extern.h +index bf3d5b3..455119b 100644 +--- a/src/extern.h ++++ b/src/extern.h +@@ -96,8 +96,8 @@ extern char input_is_special; + extern char output_is_special; + extern char input_is_seekable; + extern char output_is_seekable; +-extern int (*xstat) (); +-extern void (*copy_function) (); ++extern int (*xstat) (const char *, struct stat *); ++extern void (*copy_function) (void); + extern char *change_directory_option; + + #define STRINGIFY_BIGINT(i, b) umaxtostr (i, b) +diff --git a/src/global.c b/src/global.c +index 66686f2..5c6ab16 100644 +--- a/src/global.c ++++ b/src/global.c +@@ -184,10 +184,10 @@ bool to_stdout_option = false; + + /* A pointer to either lstat or stat, depending on whether + dereferencing of symlinks is done for input files. */ +-int (*xstat) (); ++int (*xstat) (const char *, struct stat *); + + /* Which copy operation to perform. (-i, -o, -p) */ +-void (*copy_function) () = 0; ++void (*copy_function) (void) = 0; + + char *change_directory_option; + +-- +2.49.0 +