plt = (Elf32_Word *) map->l_info[DT_PLTGOT]->d_un.d_val;
plt = (Elf32_Word *) D_PTR (map, l_info[DT_PLTGOT]);
__elf_machine_fixup_plt(struct link_map *map, const Elf32_Rela *reloc,			Elf32_Addr *reloc_addr, Elf32_Addr finaladdr){  Elf32_Sword delta = finaladdr - (Elf32_Word) reloc_addr;  if (delta << 6 >> 6 == delta)    *reloc_addr = OPCODE_B (delta);  else if (finaladdr <= 0x01fffffc || finaladdr >= 0xfe000000)    *reloc_addr = OPCODE_BA (finaladdr);  else    {      Elf32_Word *plt, *data_words;      Elf32_Word index, offset, num_plt_entries;            num_plt_entries = (map->l_info[DT_PLTRELSZ]->d_un.d_val			 / sizeof(Elf32_Rela));      plt = (Elf32_Word *) map->l_info[DT_PLTGOT]->d_un.d_val;      offset = reloc_addr - plt;      index = (offset - PLT_INITIAL_ENTRY_WORDS)/2;      data_words = plt + PLT_DATA_START_WORDS (num_plt_entries);      reloc_addr += 1;      if (index < PLT_DOUBLE_SIZE)	{	  data_words[index] = finaladdr;	  PPC_SYNC;	  *reloc_addr = OPCODE_B ((PLT_LONGBRANCH_ENTRY_WORDS - (offset+1)) 				  * 4);	}      else	{	  index -= (index - PLT_DOUBLE_SIZE)/2;	  data_words[index] = finaladdr;	  PPC_SYNC;	  reloc_addr[1] = OPCODE_MTCTR (12);	  MODIFIED_CODE_NOQUEUE (reloc_addr + 1);	  PPC_SYNC;	  reloc_addr[0] = OPCODE_LWZ (12,				      (Elf32_Word) (data_words + index), 11);	}    }  MODIFIED_CODE (reloc_addr);}