--- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -5670,9 +5670,9 @@ mips_elf_create_dynamic_relocation (bfd /* We must now calculate the dynamic symbol table index to use in the relocation. */ - if (h != NULL - && (!h->root.def_regular - || (info->shared && !info->symbolic && !h->root.forced_local))) + if (!(h == NULL + || (h->root.def_regular + && (info->executable || info->symbolic || h->root.forced_local)))) { indx = h->root.dynindx; if (SGI_COMPAT (output_bfd))