• He Kuang's avatar
    tools lib traceevent: Export dynamic symbols used by traceevent plugins · e3d09ec8
    He Kuang authored
    Traceevent plugins need dynamic symbols exported from libtraceevent.a,
    otherwise a dlopen error will occur during plugins loading.
    
    This patch uses dynamic-list-file to export dynamic symbols which will
    be used in plugins to perf executable.
    
    The problem is covered up if feature-libpython is enabled, because
    PYTHON_EMBED_LDOPTS contains '-Xlinker --export-dynamic' which adds all
    symbols to the dynamic symbol table. So we should reproduce the problem
    by setting NO_LIBPYTHON=1.
    
    Before this patch:
    
      (Prepare plugins)
      $ ls /root/.traceevent/plugins/
      plugin_sched_switch.so
      plugin_function.so
      ...
    
      $ perf record -e 'ftrace:function' ls
    
      $ perf script
        Warning: could not load plugin '/mnt/data/root/.traceevent/plugins/plugin_sched_switch.so'
        /root/.traceevent/plugins/plugin_sched_switch.so: undefined symbol: pevent_unregister_event_handler
    
        Warning: could not load plugin '/root/.traceevent/plugins/plugin_function.so'
        /root/.traceevent/plugins/plugin_function.so: undefined symbol: warning
        ...
               :1049  1049 [000]  9666.754487: ftrace:function:  ffffffff8118bc50 <-- ffffffff8118c5b3
               :1049  1049 [000]  9666.754487: ftrace:function:  ffffffff818e2440 <-- ffffffff8118bc75
               :1049  1049 [000]  9666.754487: ftrace:function:  ffffffff8106eee0 <-- ffffffff811212e2
    
    After this patch:
    
      $ perf record -e 'ftrace:function' ls
      $ perf script
               :1049  1049 [000]  9666.754487: ftrace:function: __set_task_comm
               :1049  1049 [000]  9666.754487: ftrace:function:    _raw_spin_lock
               :1049  1049 [000]  9666.754487: ftrace:function: task_tgid_nr_ns
               ...
    Signed-off-by: default avatarHe Kuang <hekuang@huawei.com>
    Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/r/1432819735-35040-1-git-send-email-hekuang@huawei.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    e3d09ec8
Makefile 6.78 KB