From: Ian Lance Taylor Date: Thu, 6 Feb 1997 22:02:51 +0000 (+0000) Subject: * elflink.h (elf_link_input_bfd): Discard local symbols that are X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=258b1f5d18105cada68ce457610e1e4614a568d6;p=binutils-gdb.git * elflink.h (elf_link_input_bfd): Discard local symbols that are attached to sections which are not being included in the link. --- diff --git a/bfd/elflink.h b/bfd/elflink.h index 86352f04dce..dd5b4db7263 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -2881,9 +2881,20 @@ elf_link_input_bfd (finfo, input_bfd) if (finfo->info->discard == discard_all) continue; + /* If this symbol is defined in a section which we are + discarding, we don't need to keep it. For the benefit of the + MIPS ELF linker, we check SEC_EXCLUDE as well as linker_mark. */ + if (isym->st_shndx > 0 + && isym->st_shndx < SHN_LORESERVE + && isec != NULL + && (! isec->linker_mark + || (! finfo->info->relocateable + && (isec->flags & SEC_EXCLUDE) != 0))) + continue; + /* Get the name of the symbol. */ name = bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link, - isym->st_name); + isym->st_name); if (name == NULL) return false;