diff options
| author | Robert Marko | 2025-04-16 11:56:22 +0000 |
|---|---|---|
| committer | Hauke Mehrtens | 2025-06-08 19:28:26 +0000 |
| commit | fe5e590b46b02406b641750c1bf4416b47959a0f (patch) | |
| tree | 391ea0ab9577c3d7813e130dbc67dfc8c9ef2a0b | |
| parent | f75d7a5954807e1c8977ccaed6452a2ac6414679 (diff) | |
| download | openwrt-fe5e590b46b02406b641750c1bf4416b47959a0f.tar.gz | |
tools: cpio: fix compilation with GCC15
Fedora 42 updated to GCC15 which now defaults to GNU23 as the default
instead of GNU17[1], and this breaks cpio compilation.
Its been reported upstream [2], so import the patch attached to the bug
report that fixes compilation with GCC15.
[1] https://gcc.gnu.org/gcc-15/porting_to.html#c23
[2] https://savannah.gnu.org/bugs/?66297
Link: https://github.com/openwrt/openwrt/pull/18506
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit c5041094ba06b3cdfb9458f1cb5acb00a9cbacd3)
Link: https://github.com/openwrt/openwrt/pull/19065
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
| -rw-r--r-- | tools/cpio/patches/cpio-c23.patch | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/cpio/patches/cpio-c23.patch b/tools/cpio/patches/cpio-c23.patch new file mode 100644 index 0000000000..825f369d6e --- /dev/null +++ b/tools/cpio/patches/cpio-c23.patch @@ -0,0 +1,23 @@ +--- a/src/extern.h ++++ b/src/extern.h +@@ -97,7 +97,8 @@ extern char input_is_special; + extern char output_is_special; + extern char input_is_seekable; + extern char output_is_seekable; +-extern int (*xstat) (); ++//void not good enough ++extern int (*xstat) (const char * restrict, struct stat * restrict); + extern void (*copy_function) (); + extern char *change_directory_option; + +--- a/src/global.c ++++ b/src/global.c +@@ -185,7 +185,7 @@ 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 * restrict, struct stat * restrict); + + /* Which copy operation to perform. (-i, -o, -p) */ + void (*copy_function) () = 0; |