elf_alpha_fix_plt(map, reloc, sym_value);
elf_alpha_fix_plt(map, reloc, (Elf64_Addr)reloc_addr, sym_value);
elf_machine_rela (struct link_map *map,		  const Elf64_Rela *reloc,		  const Elf64_Sym *sym,		  Elf64_Addr (*resolve) (const Elf64_Sym **ref,					 Elf64_Addr reloc_addr,					 int noplt)){  Elf64_Addr *const reloc_addr = (void *)(map->l_addr + reloc->r_offset);  unsigned long r_info = ELF64_R_TYPE (reloc->r_info);  /* We cannot use a switch here because we cannot locate the switch     jump table until we've self-relocated.  */  if (r_info == R_ALPHA_RELATIVE)    {      /* Already done in dynamic linker.  */      if (!resolve || map != &_dl_rtld_map)	*reloc_addr += map->l_addr;    }  else if (r_info == R_ALPHA_NONE)    ;  else    {      Elf64_Addr loadbase, sym_value;      if (resolve)	{	  loadbase = (*resolve)(&sym, (Elf64_Addr)reloc_addr,			        r_info == R_ALPHA_JMP_SLOT);	}      else	loadbase = map->l_addr;      sym_value = sym ? loadbase + sym->st_value : 0;      if (r_info == R_ALPHA_GLOB_DAT)	{	  *reloc_addr = sym_value;	}      else if (r_info == R_ALPHA_JMP_SLOT)	{	  *reloc_addr = sym_value;	  elf_alpha_fix_plt(map, reloc, sym_value);	}      else if (r_info == R_ALPHA_REFQUAD)	{	  sym_value += *reloc_addr;	  if (resolve && map == &_dl_rtld_map)	    {	      /* Undo the relocation done here during bootstrapping.		 Now we will relocate anew, possibly using a binding		 found in the user program or a loaded library rather		 than the dynamic linker's built-in definitions used		 while loading those libraries.  */	      const Elf64_Sym *const dlsymtab		= (void *)(map->l_addr + map->l_info[DT_SYMTAB]->d_un.d_ptr);	      sym_value -= map->l_addr;	      sym_value -= dlsymtab[ELF64_R_SYM(reloc->r_info)].st_value;	    }	  else	    sym_value += reloc->r_addend;	  *reloc_addr = sym_value;	}      else if (r_info == R_ALPHA_COPY)	memcpy (reloc_addr, (void *) sym_value, sym->st_size);      else	assert (! "unexpected dynamic reloc type");    }}