linux-trace-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tzvetomir Stoyanov <tstoyanov@vmware.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: "Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com>,
	Linux Trace Devel <linux-trace-devel@vger.kernel.org>
Subject: Re: [PATCH 1/7] trace-cmd: Move trace-output.c into the library code
Date: Fri, 9 Aug 2019 13:22:30 +0000	[thread overview]
Message-ID: <CACqStocrJeq70HKFbb_epyQMV1xdtaJ2ywm77uf5ht22KAp0cw@mail.gmail.com> (raw)
In-Reply-To: <20190808193755.346da18f@gandalf.local.home>

On Fri, Aug 9, 2019 at 2:37 AM Steven Rostedt <rostedt@goodmis.org> wrote:
>
> On Thu, 11 Jul 2019 16:03:01 +0300
> "Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com> wrote:
>
> > Functions, implemented in trace-output.c file, do not depend on
> > trace-cmd application context and can be used standalone. The file
> > is moved from trace-cmd to libtracecmd. It also fixes a warning
> > while loading python modules from kernelshark:
> > ImportError: ctracecmd.so: undefined symbol: tracecmd_append_cpu_data
> >
> > Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
> > ---
> >  lib/trace-cmd/Makefile                     | 11 ++++++++++-
> >  {tracecmd => lib/trace-cmd}/trace-output.c |  0
> >  tracecmd/Makefile                          |  1 -
> >  3 files changed, 10 insertions(+), 2 deletions(-)
> >  rename {tracecmd => lib/trace-cmd}/trace-output.c (100%)
> >
> > diff --git a/lib/trace-cmd/Makefile b/lib/trace-cmd/Makefile
> > index 44c1332..9086eb6 100644
> > --- a/lib/trace-cmd/Makefile
> > +++ b/lib/trace-cmd/Makefile
> > @@ -4,12 +4,15 @@ include $(src)/scripts/utils.mk
> >
> >  bdir:=$(obj)/lib/trace-cmd
> >
> > -DEFAULT_TARGET = $(bdir)/libtracecmd.a
> > +TC_VERSION := $(bdir)/include/tc_version.h
> > +
> > +DEFAULT_TARGET = $(bdir)/libtracecmd.a $(TC_VERSION)
> >
> >  OBJS =
> >  OBJS += trace-hash.o
> >  OBJS += trace-hooks.o
> >  OBJS += trace-input.o
> > +OBJS += trace-output.o
> >  OBJS += trace-recorder.o
> >  OBJS += trace-util.o
> >  OBJS += trace-filter-hash.o
> > @@ -29,6 +32,9 @@ $(bdir):
> >  $(OBJS): | $(bdir)
> >  $(DEPS): | $(bdir)
> >
> > +$(TC_VERSION): force | $(bdir)/include
> > +     $(Q)$(call update_version.h)
> > +
>
> Hi Ceco,
>
> Why the addition of TC_VERISON here? It's not stated in the change log
> to why this was copied over. I ever removed all references from
> TC_VERSION and it still builds fine.
>
> -- Steve
>
There is a dependency: trace-output.c includes version.h, which
includes tc_version.h.
When trace-output.c is moved to the lib/trace-cmd directory, it
includes tc_version.h from
lib/trace-cmd/include. It makes sense, otherwise the libtracecmd will
depend on the trace-cmd
application. That's why I duplicated that TC_VERISON logic in
lib/trace-cmd/Makefile. It
forces lib/trace-cmd/include/tc_version.h to be generated on every
libtracecmd build.
Now we have two auto generated files:
    lib/trace-cmd/include/tc_version.h
    tracecmd/include/tc_version.h

May be we should move tc_version.h to be generated in include/, so we
can use the same file from
both the application and the library ?

>
> >  $(bdir)/libtracecmd.a: $(OBJS)
> >       $(Q)$(call do_build_static_lib)
> >
> > @@ -43,6 +49,8 @@ $(bdir)/trace-util.o: $(obj)/plugins/trace_plugin_dir
> >  $(DEPS): $(bdir)/.%.d: %.c
> >       $(Q)$(CC) -M $(CPPFLAGS) $(CFLAGS) $< > $@
> >
> > +$(DEPS): $(TC_VERSION)
> > +
> >  $(OBJS): $(bdir)/%.o : $(bdir)/.%.d
> >
> >  dep_includes := $(wildcard $(DEPS))
> > @@ -54,4 +62,5 @@ endif
> >  clean:
> >       $(RM) $(bdir)/*.a $(bdir)/*.so $(bdir)/*.o $(bdir)/.*.d
> >
> > +force:
> >  .PHONY: clean
> > diff --git a/tracecmd/trace-output.c b/lib/trace-cmd/trace-output.c
> > similarity index 100%
> > rename from tracecmd/trace-output.c
> > rename to lib/trace-cmd/trace-output.c
> > diff --git a/tracecmd/Makefile b/tracecmd/Makefile
> > index bcd437a..6968f83 100644
> > --- a/tracecmd/Makefile
> > +++ b/tracecmd/Makefile
> > @@ -29,7 +29,6 @@ TRACE_CMD_OBJS += trace-restore.o
> >  TRACE_CMD_OBJS += trace-check-events.o
> >  TRACE_CMD_OBJS += trace-show.o
> >  TRACE_CMD_OBJS += trace-list.o
> > -TRACE_CMD_OBJS += trace-output.o
> >  TRACE_CMD_OBJS += trace-usage.o
> >  TRACE_CMD_OBJS += trace-msg.o
> >
>


-- 
Tzvetomir (Ceco) Stoyanov
VMware Open Source Technology Center

  reply	other threads:[~2019-08-09 13:22 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-11 13:03 [PATCH 0/7] Separate trace-cmd and libtracecmd code Tzvetomir Stoyanov (VMware)
2019-07-11 13:03 ` [PATCH 1/7] trace-cmd: Move trace-output.c into the library code Tzvetomir Stoyanov (VMware)
2019-08-08 23:37   ` Steven Rostedt
2019-08-09 13:22     ` Tzvetomir Stoyanov [this message]
2019-08-09 13:59       ` Steven Rostedt
2019-08-09 15:02         ` Steven Rostedt
2019-07-11 13:03 ` [PATCH 2/7] trace-cmd: Move trace-msg.c into the library Tzvetomir Stoyanov (VMware)
2019-07-11 13:03 ` [PATCH 3/7] trace-cmd: Move trace-cmd global variable "quiet" to libtracecmd Tzvetomir Stoyanov (VMware)
2019-07-11 13:03 ` [PATCH 4/7] trace-cmd: Move trace-cmd global variable "debug" " Tzvetomir Stoyanov (VMware)
2019-07-11 13:03 ` [PATCH 5/7] trace-cmd: Move plog() function " Tzvetomir Stoyanov (VMware)
2019-07-11 13:03 ` [PATCH 6/7] trace-cmd: Move trace-cmd APIs from trace-cmd.h to trace-local.h Tzvetomir Stoyanov (VMware)
2019-07-11 13:03 ` [PATCH 7/7] trace-cmd: Move tracecmd_stack_tracer_status() function to libtracecmd Tzvetomir Stoyanov (VMware)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CACqStocrJeq70HKFbb_epyQMV1xdtaJ2ywm77uf5ht22KAp0cw@mail.gmail.com \
    --to=tstoyanov@vmware.com \
    --cc=linux-trace-devel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=tz.stoyanov@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).