Message ID | 20230517131936.936840-1-arnd@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | decompressor: provide missing prototypes | expand |
On Wed, 17 May 2023 15:19:31 +0200 Arnd Bergmann <arnd@kernel.org> wrote: > From: Arnd Bergmann <arnd@arndb.de> > > The entry points for the decompressor don't always have a prototype > included in the .c file: > > lib/decompress_inflate.c:42:17: error: no previous prototype for '__gunzip' [-Werror=missing-prototypes] > lib/decompress_unxz.c:251:17: error: no previous prototype for 'unxz' [-Werror=missing-prototypes] > lib/decompress_unzstd.c:331:17: error: no previous prototype for 'unzstd' [-Werror=missing-prototypes] > > include the correct headers for unxz and unzstd, and mark the > inflate function above as unconditionally 'static' to avoid > these warnings. These are errors, not warnings? Under what circumstances do they occur? Shouldn't we cc:stable? If so, do we have a suitable Fixes: target?
On Wed, May 17, 2023, at 22:49, Andrew Morton wrote: > On Wed, 17 May 2023 15:19:31 +0200 Arnd Bergmann <arnd@kernel.org> wrote: > >> From: Arnd Bergmann <arnd@arndb.de> >> >> The entry points for the decompressor don't always have a prototype >> included in the .c file: >> >> lib/decompress_inflate.c:42:17: error: no previous prototype for '__gunzip' [-Werror=missing-prototypes] >> lib/decompress_unxz.c:251:17: error: no previous prototype for 'unxz' [-Werror=missing-prototypes] >> lib/decompress_unzstd.c:331:17: error: no previous prototype for 'unzstd' [-Werror=missing-prototypes] >> >> include the correct headers for unxz and unzstd, and mark the >> inflate function above as unconditionally 'static' to avoid >> these warnings. > > These are errors, not warnings? > > Under what circumstances do they occur? Running "make W=1" turns these errors on as warnings, enabling CONFIG_WERROR turns all warnings into errors. > Shouldn't we cc:stable? If so, do we have a suitable Fixes: target? I have sent 140 patches for these, there is probably no point in backporting them all. My hope is that we can enable -Wmissing-prototypes by default after these are all merged, but that patch would not get backported either. I meant to include a link with the explanations to https://people.kernel.org/arnd/missing-prototype-warnings-in-the-kernel in my series but didn't have that in the separate patches. Arnd
diff --git a/lib/decompress_inflate.c b/lib/decompress_inflate.c index 6130c42b8e59..e19199f4a684 100644 --- a/lib/decompress_inflate.c +++ b/lib/decompress_inflate.c @@ -39,7 +39,7 @@ static long INIT nofill(void *buffer, unsigned long len) } /* Included from initramfs et al code */ -STATIC int INIT __gunzip(unsigned char *buf, long len, +static int INIT __gunzip(unsigned char *buf, long len, long (*fill)(void*, unsigned long), long (*flush)(void*, unsigned long), unsigned char *out_buf, long out_len, diff --git a/lib/decompress_unxz.c b/lib/decompress_unxz.c index 9f4262ee33a5..353268b9f129 100644 --- a/lib/decompress_unxz.c +++ b/lib/decompress_unxz.c @@ -102,6 +102,8 @@ */ #ifdef STATIC # define XZ_PREBOOT +#else +#include <linux/decompress/unxz.h> #endif #ifdef __KERNEL__ # include <linux/decompress/mm.h> diff --git a/lib/decompress_unzstd.c b/lib/decompress_unzstd.c index a512b99ae16a..bba2c0bb10cb 100644 --- a/lib/decompress_unzstd.c +++ b/lib/decompress_unzstd.c @@ -69,6 +69,8 @@ # define UNZSTD_PREBOOT # include "xxhash.c" # include "zstd/decompress_sources.h" +#else +#include <linux/decompress/unzstd.h> #endif #include <linux/decompress/mm.h>