- (Elf32_Addr)reloc_addr + (addend << 2);
- (Elf32_Addr)reloc_addr + (reloc->r_addend << 2);
elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,		  const Elf32_Sym *sym, const struct r_found_version *version,		  Elf32_Addr *const reloc_addr){  const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);  if (__builtin_expect (r_type == R_ARM_RELATIVE, 0))    *reloc_addr = map->l_addr + reloc->r_addend;#ifndef RTLD_BOOTSTRAP  else if (__builtin_expect (r_type == R_ARM_NONE, 0))    return;#endif  else    {      const Elf32_Sym *const refsym = sym;      Elf32_Addr value = RESOLVE (&sym, version, r_type);      if (sym)	value += sym->st_value;      switch (r_type)	{	case R_ARM_GLOB_DAT:	case R_ARM_JUMP_SLOT:	case R_ARM_ABS32:	  *reloc_addr = value + reloc->r_addend;	  break;	case R_ARM_PC24:	  {	     Elf32_Addr newvalue, topbits;	     newvalue = value + reloc->r_addend - (Elf32_Addr)reloc_addr;	     topbits = newvalue & 0xfe000000;	     if (topbits != 0xfe000000 && topbits != 0x00000000)	       {		 newvalue = fix_bad_pc24(reloc_addr, value)		   - (Elf32_Addr)reloc_addr + (addend << 2);		 topbits = newvalue & 0xfe000000;		 if (topbits != 0xfe000000 && topbits != 0x00000000)		   {		     _dl_signal_error (0, map->l_name, NULL,				       "R_ARM_PC24 relocation out of range");		   }	       }	     newvalue >>= 2;	     value = (*reloc_addr & 0xff000000) | (newvalue & 0x00ffffff);	     *reloc_addr = value;	  }	  break;	default:	  _dl_reloc_bad_type (map, r_type, 0);	  break;	}    }}