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 <fl@n621.de> [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 <ju.o@free.fr>
This commit is contained in:
committed by
Julien Olivain
parent
31569bcc1b
commit
e3cae9e1ca
48
package/cpio/0001-Fix-c23-conformity.patch
Normal file
48
package/cpio/0001-Fix-c23-conformity.patch
Normal file
@@ -0,0 +1,48 @@
|
||||
From f42137f5ab9cf07d1e62edc05e0212688d3ebaa2 Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Poznyakoff <gray@gnu.org>
|
||||
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 <gray@gnu.org>
|
||||
Signed-off-by: Florian Larysch <fl@n621.de>
|
||||
---
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user