|
@@ -363,7 +363,7 @@ static void do_relocs(struct dso *dso, size_t *rel, size_t rel_size, size_t stri
|
|
sym = syms + sym_index;
|
|
sym = syms + sym_index;
|
|
name = strings + sym->st_name;
|
|
name = strings + sym->st_name;
|
|
ctx = type==REL_COPY ? head->syms_next : head;
|
|
ctx = type==REL_COPY ? head->syms_next : head;
|
|
- def = (sym->st_info&0xf) == STT_SECTION
|
|
|
|
|
|
+ def = (sym->st_info>>4) == STB_LOCAL
|
|
? (struct symdef){ .dso = dso, .sym = sym }
|
|
? (struct symdef){ .dso = dso, .sym = sym }
|
|
: find_sym(ctx, name, type==REL_PLT);
|
|
: find_sym(ctx, name, type==REL_PLT);
|
|
if (!def.sym && (sym->st_shndx != SHN_UNDEF
|
|
if (!def.sym && (sym->st_shndx != SHN_UNDEF
|