Blame view
tools/perf/builtin-version.c
2.34 KB
b24413180 License cleanup: ... |
1 |
// SPDX-License-Identifier: GPL-2.0 |
0a4bb5da9 perf tools: Move ... |
2 3 |
#include "builtin.h" #include "perf.h" |
9ff2a6470 perf version: Pri... |
4 |
#include "color.h" |
9ff2a6470 perf version: Pri... |
5 |
#include <tools/config.h> |
d3300a3c4 perf symbols: Mov... |
6 |
#include <stdbool.h> |
7a8ef4c4b perf tools: Remov... |
7 |
#include <stdio.h> |
9ff2a6470 perf version: Pri... |
8 9 |
#include <string.h> #include <subcmd/parse-options.h> |
0a4bb5da9 perf tools: Move ... |
10 |
|
9ff2a6470 perf version: Pri... |
11 12 13 14 15 16 17 18 19 20 21 |
int version_verbose; struct version { bool build_options; }; static struct version version; static struct option version_options[] = { OPT_BOOLEAN(0, "build-options", &version.build_options, "display the build options"), |
916c31fff perf version: Fix... |
22 |
OPT_END(), |
9ff2a6470 perf version: Pri... |
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
}; static const char * const version_usage[] = { "perf version [<options>]", NULL }; static void on_off_print(const char *status) { printf("[ "); if (!strcmp(status, "OFF")) color_fprintf(stdout, PERF_COLOR_RED, "%-3s", status); else color_fprintf(stdout, PERF_COLOR_GREEN, "%-3s", status); printf(" ]"); } static void status_print(const char *name, const char *macro, const char *status) |
0a4bb5da9 perf tools: Move ... |
44 |
{ |
9ff2a6470 perf version: Pri... |
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
printf("%22s: ", name); on_off_print(status); printf(" # %s ", macro); } #define STATUS(__d, __m) \ do { \ if (IS_BUILTIN(__d)) \ status_print(#__m, #__d, "on"); \ else \ status_print(#__m, #__d, "OFF"); \ } while (0) static void library_status(void) { STATUS(HAVE_DWARF_SUPPORT, dwarf); STATUS(HAVE_DWARF_GETLOCATIONS_SUPPORT, dwarf_getlocations); STATUS(HAVE_GLIBC_SUPPORT, glibc); STATUS(HAVE_GTK2_SUPPORT, gtk2); |
8a812bf55 perf version: Pri... |
65 |
#ifndef HAVE_SYSCALL_TABLE_SUPPORT |
9ff2a6470 perf version: Pri... |
66 |
STATUS(HAVE_LIBAUDIT_SUPPORT, libaudit); |
8a812bf55 perf version: Pri... |
67 68 |
#endif STATUS(HAVE_SYSCALL_TABLE_SUPPORT, syscall_table); |
9ff2a6470 perf version: Pri... |
69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
STATUS(HAVE_LIBBFD_SUPPORT, libbfd); STATUS(HAVE_LIBELF_SUPPORT, libelf); 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_ZLIB_SUPPORT, zlib); STATUS(HAVE_LZMA_SUPPORT, lzma); STATUS(HAVE_AUXTRACE_SUPPORT, get_cpuid); STATUS(HAVE_LIBBPF_SUPPORT, bpf); |
3b1c5d965 tools build: Impl... |
83 84 |
STATUS(HAVE_AIO_SUPPORT, aio); STATUS(HAVE_ZSTD_SUPPORT, zstd); |
9ff2a6470 perf version: Pri... |
85 86 87 88 89 90 |
} int cmd_version(int argc, const char **argv) { argc = parse_options(argc, argv, version_options, version_usage, PARSE_OPT_STOP_AT_NON_OPTION); |
0a4bb5da9 perf tools: Move ... |
91 92 |
printf("perf version %s ", perf_version_string); |
9ff2a6470 perf version: Pri... |
93 94 95 |
if (version.build_options || version_verbose == 1) library_status(); |
0a4bb5da9 perf tools: Move ... |
96 97 |
return 0; } |