Browse Source

2010-10-01 Thomas Schwinge <thomas@codesourcery.com>

* elf32-arm.c (elf32_arm_size_stubs): Don't choke on local symbols in
	SHN_UNDEF, SHN_ABS, SHN_COMMON.
binutils-2_21-branch
Thomas Schwinge 16 years ago
parent
commit
f6d250ce5c
  1. 5
      bfd/ChangeLog
  2. 13
      bfd/elf32-arm.c

5
bfd/ChangeLog

@ -1,3 +1,8 @@
2010-10-01 Thomas Schwinge <thomas@codesourcery.com>
* elf32-arm.c (elf32_arm_size_stubs): Don't choke on local symbols in
SHN_UNDEF, SHN_ABS, SHN_COMMON.
2010-09-30 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11812

13
bfd/elf32-arm.c

@ -4486,7 +4486,6 @@ elf32_arm_size_stubs (bfd *output_bfd,
{
/* It's a local symbol. */
Elf_Internal_Sym *sym;
Elf_Internal_Shdr *hdr;
if (local_syms == NULL)
{
@ -4502,8 +4501,16 @@ elf32_arm_size_stubs (bfd *output_bfd,
}
sym = local_syms + r_indx;
hdr = elf_elfsections (input_bfd)[sym->st_shndx];
sym_sec = hdr->bfd_section;
if (sym->st_shndx == SHN_UNDEF)
sym_sec = bfd_und_section_ptr;
else if (sym->st_shndx == SHN_ABS)
sym_sec = bfd_abs_section_ptr;
else if (sym->st_shndx == SHN_COMMON)
sym_sec = bfd_com_section_ptr;
else
sym_sec =
bfd_section_from_elf_index (input_bfd, sym->st_shndx);
if (!sym_sec)
/* This is an undefined symbol. It can never
be resolved. */

Loading…
Cancel
Save