Commit 166ccc9c authored by Namhyung Kim's avatar Namhyung Kim Committed by Arnaldo Carvalho de Melo

perf symbols: Introduce symbol__elf_init()

The symbol__elf_init() is for initializing internal libelf data
structure and getting rid of its dependency outside of ELF/symboling
handling code.
Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1344228082-15569-2-git-send-email-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent b25085be
...@@ -16,8 +16,6 @@ ...@@ -16,8 +16,6 @@
#include "util/session.h" #include "util/session.h"
#include "util/symbol.h" #include "util/symbol.h"
#include <libelf.h>
static const char *input_name; static const char *input_name;
static bool force; static bool force;
static bool show_kernel; static bool show_kernel;
...@@ -71,7 +69,7 @@ static int perf_session__list_build_ids(void) ...@@ -71,7 +69,7 @@ static int perf_session__list_build_ids(void)
{ {
struct perf_session *session; struct perf_session *session;
elf_version(EV_CURRENT); symbol__elf_init();
session = perf_session__new(input_name, O_RDONLY, force, false, session = perf_session__new(input_name, O_RDONLY, force, false,
&build_id__mark_dso_hit_ops); &build_id__mark_dso_hit_ops);
......
...@@ -1453,6 +1453,11 @@ static int dso__load_sym(struct dso *dso, struct map *map, const char *name, ...@@ -1453,6 +1453,11 @@ static int dso__load_sym(struct dso *dso, struct map *map, const char *name,
return err; return err;
} }
void symbol__elf_init(void)
{
elf_version(EV_CURRENT);
}
static bool dso__build_id_equal(const struct dso *dso, u8 *build_id) static bool dso__build_id_equal(const struct dso *dso, u8 *build_id)
{ {
return memcmp(dso->build_id, build_id, sizeof(dso->build_id)) == 0; return memcmp(dso->build_id, build_id, sizeof(dso->build_id)) == 0;
...@@ -2754,7 +2759,8 @@ int symbol__init(void) ...@@ -2754,7 +2759,8 @@ int symbol__init(void)
symbol_conf.priv_size = ALIGN(symbol_conf.priv_size, sizeof(u64)); symbol_conf.priv_size = ALIGN(symbol_conf.priv_size, sizeof(u64));
elf_version(EV_CURRENT); symbol__elf_init();
if (symbol_conf.sort_by_name) if (symbol_conf.sort_by_name)
symbol_conf.priv_size += (sizeof(struct symbol_name_rb_node) - symbol_conf.priv_size += (sizeof(struct symbol_name_rb_node) -
sizeof(struct symbol)); sizeof(struct symbol));
......
...@@ -309,6 +309,7 @@ void machines__destroy_guest_kernel_maps(struct rb_root *machines); ...@@ -309,6 +309,7 @@ void machines__destroy_guest_kernel_maps(struct rb_root *machines);
int symbol__init(void); int symbol__init(void);
void symbol__exit(void); void symbol__exit(void);
void symbol__elf_init(void);
size_t symbol__fprintf_symname_offs(const struct symbol *sym, size_t symbol__fprintf_symname_offs(const struct symbol *sym,
const struct addr_location *al, FILE *fp); const struct addr_location *al, FILE *fp);
size_t symbol__fprintf_symname(const struct symbol *sym, FILE *fp); size_t symbol__fprintf_symname(const struct symbol *sym, FILE *fp);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment