Hi taeung, On Fri, 08 Aug 2014 15:29:26 +0900, taeung wrote: > Hello, perf hackers :-) > > I'm beginner in perf. > I'm analysing the sequence of function call and how it was written to > update 'report' of gtk view. > > This is a thread of a command 'perf report --gtk' > > 1. run_argv() > (in main of perf.c:534) > > 2. handle_internal_command() > (in run_argv of perf.c:420 ) > So far, I've thought this process is to filter what command and option is > > 3. cmd_report() > (in run_builtin of perf.c:319) by function pointer > > 4. setup_browser() > (in cmd_report of builtin-report.c:750) > > 5. setup_gtk_browser() > (in setup_browser of ui/setup.c:74) > > 6. perf_gtk__init() > (in setup_gtk_browser of ui/setup.c:32) > > about number 6, I have a question. > > In setup_gtk_browser of ui/setup.c: 28 ~ 32, > > 28 perf_ui_init = dlsym(perf_gtk_handle, "perf_gtk__init"); > 29 if (perf_ui_init == NULL) > 30 goto out_close; > 31 > 32 if (perf_ui_init() == 0) > 33 return 0; > 34 > > Why not call directly 'perf_gtk__init()' ? > Why call the function by function pointer(perf_ui_init) after it is > gotten by 'dlsym()' ? > Why use 'dlsym()' ? > Is it better than calling directly the function ?
It was because many perf users wanted to reduce dependency in the main perf binary as they hardly/never use the GTK ui. Although it can be disabled with NO_GTK2=1 when invoking make, they're just too lazy to do that. :) Please see https://lkml.org/lkml/2013/8/4/154 . Thanks, Namhyung -- To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html