perf tools: Remove dependency on libnewt
Now that the map browser shares the input routine with the hists browser, there is no need for using any libnewt routine, so remove all traces except for honouring NO_NEWT=1 on the makefile command line as an indication that TUI support is not needed, in fact it just sets NO_SLANG=1. Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-wae5o7xca9m52bj1re28jc5j@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Родитель
a403253634
Коммит
6692c262df
|
@ -35,7 +35,9 @@ include config/utilities.mak
|
|||
#
|
||||
# Define WERROR=0 to disable treating any warnings as errors.
|
||||
#
|
||||
# Define NO_NEWT if you do not want TUI support.
|
||||
# Define NO_NEWT if you do not want TUI support. (deprecated)
|
||||
#
|
||||
# Define NO_SLANG if you do not want TUI support.
|
||||
#
|
||||
# Define NO_GTK2 if you do not want GTK+ GUI support.
|
||||
#
|
||||
|
@ -104,6 +106,10 @@ ifdef PARSER_DEBUG
|
|||
PARSER_DEBUG_CFLAGS := -DPARSER_DEBUG
|
||||
endif
|
||||
|
||||
ifdef NO_NEWT
|
||||
NO_SLANG=1
|
||||
endif
|
||||
|
||||
CFLAGS = -fno-omit-frame-pointer -ggdb3 -funwind-tables -Wall -Wextra -std=gnu99 $(CFLAGS_WERROR) $(CFLAGS_OPTIMIZE) $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) $(PARSER_DEBUG_CFLAGS)
|
||||
EXTLIBS = -lpthread -lrt -lelf -lm
|
||||
ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
|
||||
|
@ -680,15 +686,15 @@ ifndef NO_LIBAUDIT
|
|||
endif
|
||||
endif
|
||||
|
||||
ifndef NO_NEWT
|
||||
FLAGS_NEWT=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -lnewt
|
||||
ifneq ($(call try-cc,$(SOURCE_NEWT),$(FLAGS_NEWT),libnewt),y)
|
||||
msg := $(warning newt not found, disables TUI support. Please install newt-devel or libnewt-dev);
|
||||
ifndef NO_SLANG
|
||||
FLAGS_SLANG=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -I/usr/include/slang -lslang
|
||||
ifneq ($(call try-cc,$(SOURCE_SLANG),$(FLAGS_SLANG),libslang),y)
|
||||
msg := $(warning slang not found, disables TUI support. Please install slang-devel or libslang-dev);
|
||||
else
|
||||
# Fedora has /usr/include/slang/slang.h, but ubuntu /usr/include/slang.h
|
||||
BASIC_CFLAGS += -I/usr/include/slang
|
||||
BASIC_CFLAGS += -DNEWT_SUPPORT
|
||||
EXTLIBS += -lnewt -lslang
|
||||
BASIC_CFLAGS += -DSLANG_SUPPORT
|
||||
EXTLIBS += -lslang
|
||||
LIB_OBJS += $(OUTPUT)ui/browser.o
|
||||
LIB_OBJS += $(OUTPUT)ui/browsers/annotate.o
|
||||
LIB_OBJS += $(OUTPUT)ui/browsers/hists.o
|
||||
|
|
|
@ -111,7 +111,7 @@ static int perf_report__add_mem_hist_entry(struct perf_tool *tool,
|
|||
return -ENOMEM;
|
||||
|
||||
/*
|
||||
* In the newt browser, we are doing integrated annotation,
|
||||
* In the TUI browser, we are doing integrated annotation,
|
||||
* so we don't allocate the extra space needed because the stdio
|
||||
* code will not use it.
|
||||
*/
|
||||
|
@ -263,7 +263,7 @@ static int perf_evsel__add_hist_entry(struct perf_evsel *evsel,
|
|||
return err;
|
||||
}
|
||||
/*
|
||||
* Only in the newt browser we are doing integrated annotation,
|
||||
* Only in the TUI browser we are doing integrated annotation,
|
||||
* so we don't allocated the extra space needed because the stdio
|
||||
* code will not use it.
|
||||
*/
|
||||
|
@ -877,7 +877,7 @@ repeat:
|
|||
usage_with_options(report_usage, options);
|
||||
|
||||
/*
|
||||
* Only in the newt browser we are doing integrated annotation,
|
||||
* Only in the TUI browser we are doing integrated annotation,
|
||||
* so don't allocate extra space that won't be used in the stdio
|
||||
* implementation.
|
||||
*/
|
||||
|
|
|
@ -61,15 +61,13 @@ int main(void)
|
|||
}
|
||||
endef
|
||||
|
||||
ifndef NO_NEWT
|
||||
define SOURCE_NEWT
|
||||
#include <newt.h>
|
||||
ifndef NO_SLANG
|
||||
define SOURCE_SLANG
|
||||
#include <slang.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
newtInit();
|
||||
newtCls();
|
||||
return newtFinished();
|
||||
return SLsmg_init_smg();
|
||||
}
|
||||
endef
|
||||
endif
|
||||
|
@ -235,4 +233,4 @@ int main(void)
|
|||
numa_available();
|
||||
return 0;
|
||||
}
|
||||
endef
|
||||
endef
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
#include "../cache.h"
|
||||
#include "../../perf.h"
|
||||
#include "libslang.h"
|
||||
#include <newt.h>
|
||||
#include "ui.h"
|
||||
#include "util.h"
|
||||
#include <linux/compiler.h>
|
||||
|
@ -234,7 +233,7 @@ void ui_browser__reset_index(struct ui_browser *browser)
|
|||
void __ui_browser__show_title(struct ui_browser *browser, const char *title)
|
||||
{
|
||||
SLsmg_gotorc(0, 0);
|
||||
ui_browser__set_color(browser, NEWT_COLORSET_ROOT);
|
||||
ui_browser__set_color(browser, HE_COLORSET_ROOT);
|
||||
slsmg_write_nstring(title, browser->width + 1);
|
||||
}
|
||||
|
||||
|
@ -513,6 +512,12 @@ static struct ui_browser_colorset {
|
|||
.fg = "magenta",
|
||||
.bg = "default",
|
||||
},
|
||||
{
|
||||
.colorset = HE_COLORSET_ROOT,
|
||||
.name = "root",
|
||||
.fg = "white",
|
||||
.bg = "blue",
|
||||
},
|
||||
{
|
||||
.name = NULL,
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#define HE_COLORSET_SELECTED 53
|
||||
#define HE_COLORSET_CODE 54
|
||||
#define HE_COLORSET_ADDR 55
|
||||
#define HE_COLORSET_ROOT 56
|
||||
|
||||
struct ui_browser {
|
||||
u64 index, top_idx;
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include "../../util/symbol.h"
|
||||
#include "../../util/evsel.h"
|
||||
#include <pthread.h>
|
||||
#include <newt.h>
|
||||
|
||||
struct browser_disasm_line {
|
||||
struct rb_node rb_node;
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
#include "../libslang.h"
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <newt.h>
|
||||
#include <linux/rbtree.h>
|
||||
|
||||
#include "../../util/evsel.h"
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
#include <elf.h>
|
||||
#include <newt.h>
|
||||
#include <inttypes.h>
|
||||
#include <sys/ttydefaults.h>
|
||||
#include <string.h>
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
#include <newt.h>
|
||||
#include <signal.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
|
@ -88,13 +87,6 @@ int ui__getch(int delay_secs)
|
|||
return SLkp_getkey();
|
||||
}
|
||||
|
||||
static void newt_suspend(void *d __maybe_unused)
|
||||
{
|
||||
newtSuspend();
|
||||
raise(SIGTSTP);
|
||||
newtResume();
|
||||
}
|
||||
|
||||
static void ui__signal(int sig)
|
||||
{
|
||||
ui__exit(false);
|
||||
|
@ -106,7 +98,17 @@ int ui__init(void)
|
|||
{
|
||||
int err;
|
||||
|
||||
newtInit();
|
||||
SLutf8_enable(-1);
|
||||
SLtt_get_terminfo();
|
||||
SLtt_get_screen_size();
|
||||
|
||||
err = SLsmg_init_smg();
|
||||
if (err < 0)
|
||||
goto out;
|
||||
err = SLang_init_tty(0, 0, 0);
|
||||
if (err < 0)
|
||||
goto out;
|
||||
|
||||
err = SLkp_init();
|
||||
if (err < 0) {
|
||||
pr_err("TUI initialization failed.\n");
|
||||
|
@ -115,7 +117,6 @@ int ui__init(void)
|
|||
|
||||
SLkp_define_keysym((char *)"^(kB)", SL_KEY_UNTAB);
|
||||
|
||||
newtSetSuspendCallback(newt_suspend, NULL);
|
||||
ui_helpline__init();
|
||||
ui_browser__init();
|
||||
ui_progress__init();
|
||||
|
|
|
@ -12,7 +12,7 @@ extern int use_browser;
|
|||
void setup_browser(bool fallback_to_pager);
|
||||
void exit_browser(bool wait_for_ok);
|
||||
|
||||
#ifdef NEWT_SUPPORT
|
||||
#ifdef SLANG_SUPPORT
|
||||
int ui__init(void);
|
||||
void ui__exit(bool wait_for_ok);
|
||||
#else
|
||||
|
|
|
@ -150,7 +150,7 @@ int symbol__tty_annotate(struct symbol *sym, struct map *map,
|
|||
struct perf_evsel *evsel, bool print_lines,
|
||||
bool full_paths, int min_pcnt, int max_lines);
|
||||
|
||||
#ifdef NEWT_SUPPORT
|
||||
#ifdef SLANG_SUPPORT
|
||||
int symbol__tui_annotate(struct symbol *sym, struct map *map,
|
||||
struct perf_evsel *evsel,
|
||||
struct hist_browser_timer *hbt);
|
||||
|
|
|
@ -192,7 +192,7 @@ struct hist_browser_timer {
|
|||
int refresh;
|
||||
};
|
||||
|
||||
#ifdef NEWT_SUPPORT
|
||||
#ifdef SLANG_SUPPORT
|
||||
#include "../ui/keysyms.h"
|
||||
int hist_entry__tui_annotate(struct hist_entry *he, struct perf_evsel *evsel,
|
||||
struct hist_browser_timer *hbt);
|
||||
|
|
Загрузка…
Ссылка в новой задаче