On 11/24/21 22:28, Steven Rostedt wrote: > On Fri, 29 Oct 2021 21:26:04 +0200 > Daniel Bristot de Oliveira <bristot@xxxxxxxxxx> wrote: > >> The rtla is a meta-tool that includes a set of commands that aims >> to analyze the real-time properties of Linux. But instead of testing >> Linux as a black box, rtla leverages kernel tracing capabilities to >> provide precise information about the properties and root causes of >> unexpected results. >> >> rtla --help works and provide information about the available options. >> >> This is just the "main" and the Makefile, no function yet. >> >> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx> >> Cc: Ingo Molnar <mingo@xxxxxxxxxx> >> Cc: Tom Zanussi <zanussi@xxxxxxxxxx> >> Cc: Masami Hiramatsu <mhiramat@xxxxxxxxxx> >> Cc: Juri Lelli <juri.lelli@xxxxxxxxxx> >> Cc: Clark Williams <williams@xxxxxxxxxx> >> Cc: John Kacur <jkacur@xxxxxxxxxx> >> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> >> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> >> Cc: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> >> Cc: Daniel Bristot de Oliveira <bristot@xxxxxxxxxx> >> Cc: linux-rt-users@xxxxxxxxxxxxxxx >> Cc: linux-trace-devel@xxxxxxxxxxxxxxx >> Cc: linux-kernel@xxxxxxxxxxxxxxx >> Signed-off-by: Daniel Bristot de Oliveira <bristot@xxxxxxxxxx> >> --- >> tools/tracing/rtla/Makefile | 76 +++++++++++++++++++++++++++++++++++ >> tools/tracing/rtla/src/rtla.c | 72 +++++++++++++++++++++++++++++++++ >> 2 files changed, 148 insertions(+) >> create mode 100644 tools/tracing/rtla/Makefile >> create mode 100644 tools/tracing/rtla/src/rtla.c >> >> diff --git a/tools/tracing/rtla/Makefile b/tools/tracing/rtla/Makefile >> new file mode 100644 >> index 000000000000..33f154f86519 >> --- /dev/null >> +++ b/tools/tracing/rtla/Makefile >> @@ -0,0 +1,76 @@ >> +NAME := rtla >> +VERSION := 0.3 >> + >> +# From libtracefs: >> +# Makefiles suck: This macro sets a default value of $(2) for the >> +# variable named by $(1), unless the variable has been set by >> +# environment or command line. This is necessary for CC and AR >> +# because make sets default values, so the simpler ?= approach >> +# won't work as expected. >> +define allow-override >> + $(if $(or $(findstring environment,$(origin $(1))),\ >> + $(findstring command line,$(origin $(1)))),,\ >> + $(eval $(1) = $(2))) >> +endef >> + >> +# Allow setting CC and AR, or setting CROSS_COMPILE as a prefix. >> +$(call allow-override,CC,$(CROSS_COMPILE)gcc) >> +$(call allow-override,AR,$(CROSS_COMPILE)ar) >> +$(call allow-override,STRIP,$(CROSS_COMPILE)strip) >> +$(call allow-override,PKG_CONFIG,pkg-config) >> +$(call allow-override,LD_SO_CONF_PATH,/etc/ld.so.conf.d/) >> +$(call allow-override,LDCONFIG,ldconfig) >> + >> +INSTALL = install >> +FOPTS := -flto=auto -ffat-lto-objects -fexceptions -fstack-protector-strong \ >> + -fasynchronous-unwind-tables -fstack-clash-protection >> +WOPTS := -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -Wno-maybe-uninitialized >> + >> +TRACEFS_HEADERS := $$($(PKG_CONFIG) --cflags libtracefs) >> + >> +CFLAGS := -O -g -DVERSION=\"$(VERSION)\" $(FOPTS) $(MOPTS) $(WOPTS) $(TRACEFS_HEADERS) >> +LDFLAGS := -ggdb >> +LIBS := -ltracefs -ltraceevent -lprocps > > For the -ltracefs and -ltracevent, you could use: > > $$($PKG_CONFIG) --libs libtracefs) > > which would be more robust. Will use! -- Daniel > -- Steve >