2023-08-02 07:22:56

by wangzhu

[permalink] [raw]
Subject: [PATCH -next] efs: fix -Wunused-const-variable= warning

When building with W=1, the following warning occurs.

In file included from fs/efs/super.c:18:0:
fs/efs/efs.h:22:19: warning: ‘cprt’ defined but not used [-Wunused-const-variable=]
static const char cprt[] = "EFS: "EFS_VERSION" - (c) 1999 Al Smith
<[email protected]>";
^~~~
The header file is included in many C files, there are many
similar errors which are not included here. We add __maybe_unsed
to remove it.

Fixes: 45254b4fb2ae ("efs: move headers out of include/linux/")
Signed-off-by: Zhu Wang <[email protected]>
---
fs/efs/efs.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/efs/efs.h b/fs/efs/efs.h
index 13a4d9622633..8202be1b2ade 100644
--- a/fs/efs/efs.h
+++ b/fs/efs/efs.h
@@ -19,7 +19,8 @@

#define EFS_VERSION "1.0a"

-static const char cprt[] = "EFS: "EFS_VERSION" - (c) 1999 Al Smith <[email protected]>";
+static const char __maybe_unused cprt[] =
+ "EFS: "EFS_VERSION" - (c) 1999 Al Smith <[email protected]>";


/* 1 block is 512 bytes */
--
2.17.1



2023-08-02 19:09:13

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH -next] efs: fix -Wunused-const-variable= warning

On Wed, 2 Aug 2023 14:57:53 +0800 Zhu Wang <[email protected]> wrote:

> When building with W=1, the following warning occurs.
>
> In file included from fs/efs/super.c:18:0:
> fs/efs/efs.h:22:19: warning: ‘cprt’ defined but not used [-Wunused-const-variable=]
> static const char cprt[] = "EFS: "EFS_VERSION" - (c) 1999 Al Smith
> <[email protected]>";
> ^~~~
> The header file is included in many C files, there are many
> similar errors which are not included here. We add __maybe_unsed
> to remove it.
>
> ...
>
> --- a/fs/efs/efs.h
> +++ b/fs/efs/efs.h
> @@ -19,7 +19,8 @@
>
> #define EFS_VERSION "1.0a"
>
> -static const char cprt[] = "EFS: "EFS_VERSION" - (c) 1999 Al Smith <[email protected]>";
> +static const char __maybe_unused cprt[] =
> + "EFS: "EFS_VERSION" - (c) 1999 Al Smith <[email protected]>";
>
>
> /* 1 block is 512 bytes */

I don't know if Al is still around, but I added the Cc anyway.

cprt[] is unreferenced in fs/efs/*.c. I assume the intent here was to
embed the copyright strings in the generated binary. But this doesn't
work nowadays - the compiler/linker are removing this string entirely.

I guess the best approach is to move this copyright statement into a
comment as we do in many other places. See fs/ext2/acl.c for a random
example.