mirror of
https://github.com/torvalds/linux.git
synced 2024-12-11 05:33:09 +00:00
83a0944fa9
Related to a shadowed variable bug fix Valdis Kletnieks noticed that perf does not get built with -Wshadow, which could have helped us avoid the bug. So enable -Wshadow and also enable the following warnings on perf builds, in addition to the already enabled -Wall -Wextra -std=gnu99 warnings: -Wcast-align -Wformat=2 -Wshadow -Winit-self -Wpacked -Wredundant-decls -Wstack-protector -Wstrict-aliasing=3 -Wswitch-default -Wswitch-enum -Wno-system-headers -Wundef -Wvolatile-register-var -Wwrite-strings -Wbad-function-cast -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wstrict-prototypes -Wdeclaration-after-statement And change/fix the perf code to build cleanly under GCC 4.3.2. The list of warnings enablement is rather arbitrary: it's based on my (quick) reading of the GCC manpages and trying them on perf. I categorized the warnings based on individually enabling them and looking whether they trigger something in the perf build. If i liked those warnings (i.e. if they trigger for something that arguably could be improved) i enabled the warning. If the warnings seemed to come from language laywers spamming the build with tons of nuisance warnings i generally kept them off. Most of the sign conversion related warnings were in this category. (A second patch enabling some of the sign warnings might be welcome - sign bugs can be nasty.) I also kept warnings that seem to make sense from their manpage description and which produced no actual warnings on our code base. These warnings might still be turned off if they end up being a nuisance. I also left out a few warnings that are not supported in older compilers. [ Note that these changes might break the build on older compilers i did not test, or on non-x86 architectures that produce different warnings, so more testing would be welcome. ] Reported-by: Valdis.Kletnieks@vt.edu Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> LKML-Reference: <new-submission> Signed-off-by: Ingo Molnar <mingo@elte.hu>
42 lines
1.3 KiB
C
42 lines
1.3 KiB
C
#ifndef COLOR_H
|
|
#define COLOR_H
|
|
|
|
/* "\033[1;38;5;2xx;48;5;2xxm\0" is 23 bytes */
|
|
#define COLOR_MAXLEN 24
|
|
|
|
#define PERF_COLOR_NORMAL ""
|
|
#define PERF_COLOR_RESET "\033[m"
|
|
#define PERF_COLOR_BOLD "\033[1m"
|
|
#define PERF_COLOR_RED "\033[31m"
|
|
#define PERF_COLOR_GREEN "\033[32m"
|
|
#define PERF_COLOR_YELLOW "\033[33m"
|
|
#define PERF_COLOR_BLUE "\033[34m"
|
|
#define PERF_COLOR_MAGENTA "\033[35m"
|
|
#define PERF_COLOR_CYAN "\033[36m"
|
|
#define PERF_COLOR_BG_RED "\033[41m"
|
|
|
|
#define MIN_GREEN 0.5
|
|
#define MIN_RED 5.0
|
|
|
|
/*
|
|
* This variable stores the value of color.ui
|
|
*/
|
|
extern int perf_use_color_default;
|
|
|
|
|
|
/*
|
|
* Use this instead of perf_default_config if you need the value of color.ui.
|
|
*/
|
|
int perf_color_default_config(const char *var, const char *value, void *cb);
|
|
|
|
int perf_config_colorbool(const char *var, const char *value, int stdout_is_tty);
|
|
void color_parse(const char *value, const char *var, char *dst);
|
|
void color_parse_mem(const char *value, int len, const char *var, char *dst);
|
|
int color_fprintf(FILE *fp, const char *color, const char *fmt, ...);
|
|
int color_fprintf_ln(FILE *fp, const char *color, const char *fmt, ...);
|
|
int color_fwrite_lines(FILE *fp, const char *color, size_t count, const char *buf);
|
|
int percent_color_fprintf(FILE *fp, const char *fmt, double percent);
|
|
const char *get_percent_color(double percent);
|
|
|
|
#endif /* COLOR_H */
|