* elfxx-mips.c (mips_elf_global_got_index): Avoid segfault if

g->global_gotsym is NULL.
This commit is contained in:
Thiemo Seufer 2002-08-09 05:35:26 +00:00
parent ea591d42c4
commit d0c7ff072c
2 changed files with 10 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2002-08-09 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
* elfxx-mips.c (mips_elf_global_got_index): Avoid segfault if
g->global_gotsym is NULL.
2002-08-08 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_add_default_symbol): Don't warn a defintion

View File

@ -1446,15 +1446,18 @@ mips_elf_global_got_index (abfd, h)
bfd_vma index;
asection *sgot;
struct mips_got_info *g;
long global_got_dynindx = 0;
g = mips_elf_got_info (abfd, &sgot);
if (g->global_gotsym != NULL)
global_got_dynindx = g->global_gotsym->dynindx;
/* Once we determine the global GOT entry with the lowest dynamic
symbol table index, we must put all dynamic symbols with greater
indices into the GOT. That makes it easy to calculate the GOT
offset. */
BFD_ASSERT (h->dynindx >= g->global_gotsym->dynindx);
index = ((h->dynindx - g->global_gotsym->dynindx + g->local_gotno)
BFD_ASSERT (h->dynindx >= global_got_dynindx);
index = ((h->dynindx - global_got_dynindx + g->local_gotno)
* MIPS_ELF_GOT_SIZE (abfd));
BFD_ASSERT (index < sgot->_raw_size);