Re: [PATCH v2 1/2] tools lib traceevent: Export dynamic symbols used by traceevent plugins

From: He Kuang
Date: Thu May 14 2015 - 08:57:13 EST


Hi, jirka

On 2015/5/13 22:50, Jiri Olsa wrote:
On Tue, May 12, 2015 at 11:25:45PM +0800, hekuang wrote:
Hi, jirka

On 05/12/2015 08:37 PM, Jiri Olsa wrote:
On Tue, May 12, 2015 at 06:41:56AM +0000, He Kuang wrote:

SNIP

$(Q)$(MAKE) $(build)=perf
-$(OUTPUT)perf: $(PERFLIBS) $(PERF_IN)
- $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $(PERF_IN) $(LIBS) -o $@
+LD_LIBTRACEEVENT_FLAGS += -Xlinker --dynamic-list=$(LIBTRACEEVENT_DYNAMIC_LIST)
+$(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(LIBTRACEEVENT_DYNAMIC_LIST)
+ $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $(LD_LIBTRACEEVENT_FLAGS) $(PERF_IN) $(LIBS) -o $@
$(GTK_IN): FORCE
$(Q)$(MAKE) $(build)=gtk
@@ -373,7 +375,13 @@ $(LIB_FILE): $(LIBPERF_IN)
LIBTRACEEVENT_FLAGS += plugin_dir=$(plugindir_SQ)
$(LIBTRACEEVENT): FORCE
- $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) $(OUTPUT)libtraceevent.a plugins
+ $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) $(OUTPUT)libtraceevent.a
+
+libtraceevent_plugins: FORCE
+ $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) plugins
+
+$(LIBTRACEEVENT_DYNAMIC_LIST): libtraceevent_plugins
+ $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) $(OUTPUT)libtraceevent-dynamic-list
I thought the idea of v2 was not to introduce new target,
something like in attached patch (not completely tested)

jirka

There is a problem, the target perf executable is dependent on
the dynamic-list-file, so we should add plugins or the
dynamic-list-file to perf's dependencies.

As your patch below, the dynamic-list-file is built implictly
when building plugins, so we should not add it directly to the
dependency list of perf.

It seems new targets are needed. In the v2 patch,

hum, I dont get it.. why ?

dynamic-list-file gets rebuilt any time plugins are rebuilt..
why not keep just the 'plugins' dependency?

You can test your patch as following steps:

$ touch ../lib/traceevent/plugin_function.c
$ make
CC plugin_function.o
LD plugin_function-in.o
LINK plugin_function.so
GEN libtraceevent-dynamic-list

perf is not rebuilt. There should be a 'GEN perf', right?


jirka


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