2004-06-30 James E Wilson * elfxx-ia64.c (elfNN_ia64_check_relocs): New local pltoff. Initialize to NULL. Call get_pltoff if NULL and NEED_PLTOFF is true. Index: elfxx-ia64.c =================================================================== RCS file: /cvs/src/src/bfd/elfxx-ia64.c,v retrieving revision 1.130 diff -p -r1.130 elfxx-ia64.c *** elfxx-ia64.c 22 Jun 2004 06:03:07 -0000 1.130 --- elfxx-ia64.c 30 Jun 2004 20:05:03 -0000 *************** elfNN_ia64_check_relocs (abfd, info, sec *** 2246,2252 **** const Elf_Internal_Rela *relend; Elf_Internal_Shdr *symtab_hdr; const Elf_Internal_Rela *rel; ! asection *got, *fptr, *srel; if (info->relocatable) return TRUE; --- 2246,2252 ---- const Elf_Internal_Rela *relend; Elf_Internal_Shdr *symtab_hdr; const Elf_Internal_Rela *rel; ! asection *got, *fptr, *srel, *pltoff; if (info->relocatable) return TRUE; *************** elfNN_ia64_check_relocs (abfd, info, sec *** 2254,2260 **** symtab_hdr = &elf_tdata (abfd)->symtab_hdr; ia64_info = elfNN_ia64_hash_table (info); ! got = fptr = srel = NULL; relend = relocs + sec->reloc_count; for (rel = relocs; rel < relend; ++rel) --- 2254,2260 ---- symtab_hdr = &elf_tdata (abfd)->symtab_hdr; ia64_info = elfNN_ia64_hash_table (info); ! got = fptr = srel = pltoff = NULL; relend = relocs + sec->reloc_count; for (rel = relocs; rel < relend; ++rel) *************** elfNN_ia64_check_relocs (abfd, info, sec *** 2505,2511 **** if (need_entry & NEED_FULL_PLT) dyn_i->want_plt2 = 1; if (need_entry & NEED_PLTOFF) ! dyn_i->want_pltoff = 1; if ((need_entry & NEED_DYNREL) && (sec->flags & SEC_ALLOC)) { if (!srel) --- 2505,2522 ---- if (need_entry & NEED_FULL_PLT) dyn_i->want_plt2 = 1; if (need_entry & NEED_PLTOFF) ! { ! /* This is needed here, in case @pltoff is used in a non-shared ! link. */ ! if (!pltoff) ! { ! pltoff = get_pltoff (abfd, info, ia64_info); ! if (!pltoff) ! return FALSE; ! } ! ! dyn_i->want_pltoff = 1; ! } if ((need_entry & NEED_DYNREL) && (sec->flags & SEC_ALLOC)) { if (!srel)