|
@@ -1161,6 +1161,13 @@ static int dso__load_sym(struct dso *self, struct map *map, const char *name,
|
|
|
|
|
|
section_name = elf_sec__name(&shdr, secstrs);
|
|
|
|
|
|
+ /* 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) &&
|
|
|
+ (sym.st_value & 1))
|
|
|
+ --sym.st_value;
|
|
|
+
|
|
|
if (self->kernel != DSO_TYPE_USER || kmodule) {
|
|
|
char dso_name[PATH_MAX];
|
|
|
|