mirror of https://gitee.com/openkylin/linux.git
perf symbols: Use symbol type instead of map->type
map->type is going away, we can derive it from map->prot, so use
the same logic as in the kernel's arch/arm/kernel/module.c file:
ELF32_ST_TYPE(sym->st_info) == STT_FUNC && !(sym->st_value & 1))
This was introduced in b2f8fb237e
("perf symbols: Fix annotation of
thumb code"), that fix is maintained with this change.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Dave Martin <dave.martin@linaro.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Dr. David Alan Gilbert <david.gilbert@linaro.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: https://lkml.kernel.org/n/tip-us590h81uqgxaumucfttqj50@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
d1fd8d9e6b
commit
18231d7946
|
@ -982,7 +982,7 @@ int dso__load_sym(struct dso *dso, struct map *map, struct symsrc *syms_ss,
|
|||
/* On ARM, symbols for thumb functions have 1 added to
|
||||
* the symbol address as a flag - remove it */
|
||||
if ((ehdr.e_machine == EM_ARM) &&
|
||||
(map->type == MAP__FUNCTION) &&
|
||||
(GELF_ST_TYPE(sym.st_info) == STT_FUNC) &&
|
||||
(sym.st_value & 1))
|
||||
--sym.st_value;
|
||||
|
||||
|
|
Loading…
Reference in New Issue