tools/testing/selftests/proc/proc-pid-vm.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
The str_vsyscall_* constants in proc-pid-vm.c triggers
-Wunused-const-variable warnings with gcc-13.32 and clang 18.1.
Define and apply __maybe_unused locally to suppress the warnings.
No functional change
Fixes compiler warning:
warning: ‘str_vsyscall_*’ defined but not used[-Wunused-const-variable]
Signed-off-by: Bala-Vignesh-Reddy <reddybalavignesh9979@gmail.com>
---
tools/testing/selftests/proc/proc-pid-vm.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/proc/proc-pid-vm.c b/tools/testing/selftests/proc/proc-pid-vm.c
index d04685771952..978cbcb3eb11 100644
--- a/tools/testing/selftests/proc/proc-pid-vm.c
+++ b/tools/testing/selftests/proc/proc-pid-vm.c
@@ -47,6 +47,10 @@
#include <sys/resource.h>
#include <linux/fs.h>
+#ifndef __maybe_unused
+#define __maybe_unused __attribute__((__unused__))
+#endif
+
#include "../kselftest.h"
static inline long sys_execveat(int dirfd, const char *pathname, char **argv, char **envp, int flags)
@@ -218,12 +222,12 @@ static int make_exe(const uint8_t *payload, size_t len)
* 2: vsyscall VMA is r-xp vsyscall=emulate
*/
static volatile int g_vsyscall;
-static const char *str_vsyscall;
+static const char *str_vsyscall __maybe_unused;
-static const char str_vsyscall_0[] = "";
-static const char str_vsyscall_1[] =
+static const char str_vsyscall_0[] __maybe_unused = "";
+static const char str_vsyscall_1[] __maybe_unused =
"ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]\n";
-static const char str_vsyscall_2[] =
+static const char str_vsyscall_2[] __maybe_unused =
"ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]\n";
#ifdef __x86_64__
--
2.43.0
On Wed, 20 Aug 2025 23:26:10 +0530 Bala-Vignesh-Reddy <reddybalavignesh9979@gmail.com> wrote: > The str_vsyscall_* constants in proc-pid-vm.c triggers > -Wunused-const-variable warnings with gcc-13.32 and clang 18.1. OT but lol. My head is spinning at the term "const-variable". I understand what they mean, but it's oxymoronic. > Define and apply __maybe_unused locally to suppress the warnings. > No functional change > > Fixes compiler warning: > warning: ‘str_vsyscall_*’ defined but not used[-Wunused-const-variable] > > ... > > --- a/tools/testing/selftests/proc/proc-pid-vm.c > +++ b/tools/testing/selftests/proc/proc-pid-vm.c > @@ -47,6 +47,10 @@ > #include <sys/resource.h> > #include <linux/fs.h> > > +#ifndef __maybe_unused > +#define __maybe_unused __attribute__((__unused__)) > +#endif This would be approximately the seventh definition of __maybe_unused under tools/testing/selftests. And there's another in tools/testing/memblock, which, as if admitting that its directory is in the wrong place, had to go and include ../selftests/kselftest.h. So it would be pleasing if some kind soul were to define __maybe_unused in a common place, which looks to be tools/testing/selftests/kselftest.h. Then go zap all those private definitions. This could be done either before or after your patch. > #include "../kselftest.h" And we have 350 occurrences of "../kselftest.h". Shouldn't the build system be providing -Itools/testing/selftests? Anyway, patch looks OK - I'll add it to mm.git, thanks.
Hi Andrew, Thanks for your feedback, I didn't notice that __maybe_unused is defined repeatedly in selftests directory. Following your suggestions, I've submitted a cleanup patch that centralise the __maybe_unused definition in tools/testing/selftests/kselftest.h and removed the redundant copies across the selftests subdirectories. I've tested it with gcc and clang, and it builds cleanly. Patch Link: https://lore.kernel.org/lkml/20250821101159.2238-1-reddybalavignesh9979@gmail.com/ Will also look into build system, to tackle including kselftest.h everywhere Thanks, Bala Vignesh
© 2016 - 2025 Red Hat, Inc.