diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c index 0334779..4594449 100644 --- a/sys/kern/link_elf_obj.c +++ b/sys/kern/link_elf_obj.c @@ -1059,7 +1059,9 @@ link_elf_lookup_symbol(linker_file_t lf, const char *name, c_linker_sym_t *sym) for (i = 0, symp = ef->ddbsymtab; i < ef->ddbsymcnt; i++, symp++) { strp = ef->ddbstrtab + symp->st_name; - if (symp->st_shndx != SHN_UNDEF && strcmp(name, strp) == 0) { + if (symp->st_shndx != SHN_UNDEF && + ELF_ST_BIND(symp->st_info) != STB_LOCAL && + strcmp(name, strp) == 0) { *sym = (c_linker_sym_t) symp; return 0; }