perf version: Update --build-options to use 'supported_features' array
authorAditya Gupta <adityag@linux.ibm.com>
Wed, 4 Sep 2024 19:01:28 +0000 (00:31 +0530)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 4 Sep 2024 19:19:29 +0000 (16:19 -0300)
Now that the feature list has been duplicated in a global
'supported_features' array, use that array instead of manually checking
status of built-in features.

This helps in being consistent with commands such as 'perf check feature',
so commands can use the same array, and any new feature can be added at
one place, in the 'supported_features' array

Reviewed-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Signed-off-by: Aditya Gupta <adityag@linux.ibm.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Disha Goel <disgoel@linux.vnet.ibm.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20240904190132.415212-4-adityag@linux.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-version.c

index 4b252196de12db07b4db9a76d10b5e5d56a75bb5..e149d96c6dc57c2226a4aed8571a5a810c46e51c 100644 (file)
@@ -46,46 +46,18 @@ static void status_print(const char *name, const char *macro,
        printf("  # %s\n", macro);
 }
 
-#define STATUS(__d, __m)                               \
-do {                                                   \
-       if (IS_BUILTIN(__d))                            \
-               status_print(#__m, #__d, "on");         \
-       else                                            \
-               status_print(#__m, #__d, "OFF");        \
+#define STATUS(feature)                                   \
+do {                                                      \
+       if (feature.is_builtin)                               \
+               status_print(feature.name, feature.macro, "on");  \
+       else                                                  \
+               status_print(feature.name, feature.macro, "OFF"); \
 } while (0)
 
 static void library_status(void)
 {
-       STATUS(HAVE_DWARF_SUPPORT, dwarf);
-       STATUS(HAVE_DWARF_GETLOCATIONS_SUPPORT, dwarf_getlocations);
-#ifndef HAVE_SYSCALL_TABLE_SUPPORT
-       STATUS(HAVE_LIBAUDIT_SUPPORT, libaudit);
-#endif
-       STATUS(HAVE_SYSCALL_TABLE_SUPPORT, syscall_table);
-       STATUS(HAVE_LIBBFD_SUPPORT, libbfd);
-       STATUS(HAVE_DEBUGINFOD_SUPPORT, debuginfod);
-       STATUS(HAVE_LIBELF_SUPPORT, libelf);
-       STATUS(HAVE_LIBLLVM_SUPPORT, libllvm);
-       STATUS(HAVE_LIBNUMA_SUPPORT, libnuma);
-       STATUS(HAVE_LIBNUMA_SUPPORT, numa_num_possible_cpus);
-       STATUS(HAVE_LIBPERL_SUPPORT, libperl);
-       STATUS(HAVE_LIBPYTHON_SUPPORT, libpython);
-       STATUS(HAVE_SLANG_SUPPORT, libslang);
-       STATUS(HAVE_LIBCRYPTO_SUPPORT, libcrypto);
-       STATUS(HAVE_LIBUNWIND_SUPPORT, libunwind);
-       STATUS(HAVE_DWARF_SUPPORT, libdw-dwarf-unwind);
-       STATUS(HAVE_LIBCAPSTONE_SUPPORT, libcapstone);
-       STATUS(HAVE_ZLIB_SUPPORT, zlib);
-       STATUS(HAVE_LZMA_SUPPORT, lzma);
-       STATUS(HAVE_AUXTRACE_SUPPORT, get_cpuid);
-       STATUS(HAVE_LIBBPF_SUPPORT, bpf);
-       STATUS(HAVE_AIO_SUPPORT, aio);
-       STATUS(HAVE_ZSTD_SUPPORT, zstd);
-       STATUS(HAVE_LIBPFM, libpfm4);
-       STATUS(HAVE_LIBTRACEEVENT, libtraceevent);
-       STATUS(HAVE_BPF_SKEL, bpf_skeletons);
-       STATUS(HAVE_DWARF_UNWIND_SUPPORT, dwarf-unwind-support);
-       STATUS(HAVE_CSTRACE_SUPPORT, libopencsd);
+       for (int i = 0; supported_features[i].name; ++i)
+               STATUS(supported_features[i]);
 }
 
 int cmd_version(int argc, const char **argv)