lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 6 Apr 2012 17:51:09 +0200
From:	Borislav Petkov <bp@...en8.de>
To:	Frederic Weisbecker <fweisbec@...il.com>
Cc:	LKML <linux-kernel@...r.kernel.org>,
	Steven Rostedt <srostedt@...hat.com>,
	Steven Rostedt <rostedt@...dmis.org>,
	Ingo Molnar <mingo@...nel.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	Peter Zijlstra <peterz@...radead.org>,
	Arnaldo Carvalho de Melo <acme@...radead.org>,
	Jiri Olsa <jolsa@...hat.com>, Arun Sharma <asharma@...com>,
	Namhyung Kim <namhyung.kim@....com>
Subject: Re: [PATCH 03/15] perf: Build libtraceevent.a

On Fri, Apr 06, 2012 at 05:26:35PM +0200, Frederic Weisbecker wrote:
> 2012/4/6 Borislav Petkov <bp@...en8.de>:
> > On Fri, Apr 06, 2012 at 12:47:54AM +0200, Frederic Weisbecker wrote:
> >> From: Steven Rostedt <srostedt@...hat.com>
> >>
> >> Have building perf also build libtraceevent.a. Currently, perf does
> >> not use the code within libtraceevent.a, but it soon will.
> >>
> >> Signed-off-by: Steven Rostedt <rostedt@...dmis.org>
> >> Cc: Ingo Molnar <mingo@...nel.org>
> >> Cc: Thomas Gleixner <tglx@...utronix.de>
> >> Cc: Peter Zijlstra <peterz@...radead.org>
> >> Cc: Arnaldo Carvalho de Melo <acme@...radead.org>
> >> Cc: Steven Rostedt <rostedt@...dmis.org>
> >> Cc: Borislav Petkov <bp@...en8.de>
> >> Cc: Jiri Olsa <jolsa@...hat.com>
> >> Cc: Arun Sharma <asharma@...com>
> >> Cc: Namhyung Kim <namhyung.kim@....com>
> >> Signed-off-by: Frederic Weisbecker <fweisbec@...il.com>
> >> ---
> >>  tools/perf/Makefile |   11 ++++++++++-
> >>  1 files changed, 10 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> >> index 6f93a99..8e60e51 100644
> >> --- a/tools/perf/Makefile
> >> +++ b/tools/perf/Makefile
> >> @@ -1,5 +1,6 @@
> >>  ifeq ("$(origin O)", "command line")
> >>       OUTPUT := $(O)/
> >> +     COMMAND_O := O=$(O)
> >>  endif
> >>
> >>  # The default target of this Makefile is...
> >> @@ -211,6 +212,9 @@ $(OUTPUT)python/perf.so: $(PYRF_OBJS) $(PYTHON_EXT_SRCS) $(PYTHON_EXT_DEPS)
> >>
> >>  SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH))
> >>
> >> +EVENT_PARSE_DIR = ../lib/traceevent/
> >> +LIBTRACEEVENT = $(OUTPUT)$(EVENT_PARSE_DIR)libtraceevent.a
> >> +
> >>  #
> >>  # Single 'perf' binary right now:
> >>  #
> >> @@ -335,6 +339,7 @@ LIB_H += util/cpumap.h
> >>  LIB_H += util/top.h
> >>  LIB_H += $(ARCH_INCLUDE)
> >>  LIB_H += util/cgroup.h
> >> +LIB_H += $(EVENT_PARSE_DIR)event-parse.h
> >>
> >>  LIB_OBJS += $(OUTPUT)util/abspath.o
> >>  LIB_OBJS += $(OUTPUT)util/alias.o
> >> @@ -741,7 +746,7 @@ $(OUTPUT)perf.o: perf.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS
> >>               '-DPERF_HTML_PATH="$(htmldir_SQ)"' \
> >>               $(ALL_CFLAGS) -c $(filter %.c,$^) -o $@
> >>
> >> -$(OUTPUT)perf: $(OUTPUT)perf.o $(BUILTIN_OBJS) $(PERFLIBS)
> >> +$(OUTPUT)perf: $(OUTPUT)perf.o $(BUILTIN_OBJS) $(PERFLIBS) $(LIBTRACEEVENT)
> >>       $(QUIET_LINK)$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(OUTPUT)perf.o \
> >>                 $(BUILTIN_OBJS) $(LIBS) -o $@
> >>
> >> @@ -847,6 +852,10 @@ $(sort $(dir $(DIRECTORY_DEPS))):
> >>  $(LIB_FILE): $(LIB_OBJS)
> >>       $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIB_OBJS)
> >>
> >> +# libparsevent.a
> >> +$(LIBTRACEEVENT):
> >> +     make -C $(EVENT_PARSE_DIR) $(COMMAND_O) libtraceevent.a
> >> +
> >
> > With a toplevel Makefile in tools/, this should be made into its own
> > target residing in tools/lib/traceevent/Makefile and a perf build should
> > be dependent on it instead of adding a perf-specific libtraceevent
> > target here.
> 
> Not sure what you mean. The libtraceevent makefile is standalone and
> perf is dependant on it.
> What am I missing?

Right, what I meant was to add the $(LIBTRACEEVENT): target above to the
toplevel Makefile so that when you're in the kernel source tree, you do

$ make tools/perf

it has a target $(LIBTRACEEVENT) dependent on it in the toplevel
Makefile instead of perf's Makefile to avoid duplication. Then, when
perf is rebuilt, it simply links with this lib. IOW, not have the "make
-C" call in perf's Makefile but in the toplevel Makefile because other
tools will want to use libtraceevent.a too and link against it.

Oh well, the toplevel Makefile patches aren't upstream either so we're
wasting cycles here, I'll fix that up when the times comes.

Thanks.

-- 
Regards/Gruss,
Boris.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ