unsigned int *plt = (void *) l->l_info[DT_PLTGOT]->d_un.d_ptr;
unsigned int *plt = (void *) D_PTR (l, l_info[DT_PLTGOT]);
elf_machine_runtime_setup (struct link_map *l, int lazy, int profile){  if (l->l_info[DT_JMPREL] && lazy)    {      extern void _dl_runtime_resolve_0 (void);      extern void _dl_runtime_resolve_1 (void);      extern void _dl_runtime_profile_0 (void);      extern void _dl_runtime_profile_1 (void);      Elf64_Addr res0_addr, res1_addr;      unsigned int *plt = (void *) l->l_info[DT_PLTGOT]->d_un.d_ptr;      if (! profile)	{	  res0_addr = (Elf64_Addr) &_dl_runtime_resolve_0;	  res1_addr = (Elf64_Addr) &_dl_runtime_resolve_1;	}      else	{	  res0_addr = (Elf64_Addr) &_dl_runtime_profile_0;	  res1_addr = (Elf64_Addr) &_dl_runtime_profile_1;	  if (_dl_name_match_p (_dl_profile, l))	    _dl_profile_map = l;	}      /* PLT0 looks like:	 save	%sp, -192, %sp	 sethi	%hh(_dl_runtime_{resolve,profile}_0), %l0	 sethi	%lm(_dl_runtime_{resolve,profile}_0), %l1	 or	%l0, %hm(_dl_runtime_{resolve,profile}_0), %l0	 or	%l1, %lo(_dl_runtime_{resolve,profile}_0), %l1	 sllx	%l0, 32, %l0	 jmpl	%l0 + %l1, %l6	  sethi	%hi(0xffc00), %l2       */      plt[0] = 0x9de3bf40;      plt[1] = 0x21000000 | (res0_addr >> (64 - 22));      plt[2] = 0x23000000 | ((res0_addr >> 10) & 0x003fffff);      plt[3] = 0xa0142000 | ((res0_addr >> 32) & 0x3ff);      plt[4] = 0xa2146000 | (res0_addr & 0x3ff);      plt[5] = 0xa12c3020;      plt[6] = 0xadc40011;      plt[7] = 0x250003ff;      /* PLT1 looks like:	 save	%sp, -192, %sp	 sethi	%hh(_dl_runtime_{resolve,profile}_1), %l0	 sethi	%lm(_dl_runtime_{resolve,profile}_1), %l1	 or	%l0, %hm(_dl_runtime_{resolve,profile}_1), %l0	 or	%l1, %lo(_dl_runtime_{resolve,profile}_1), %l1	 sllx	%l0, 32, %l0	 jmpl	%l0 + %l1, %l6	  srlx	%g1, 12, %o1       */      plt[8 + 0] = 0x9de3bf40;      plt[8 + 1] = 0x21000000 | (res1_addr >> (64 - 22));      plt[8 + 2] = 0x23000000 | ((res1_addr >> 10) & 0x003fffff);      plt[8 + 3] = 0xa0142000 | ((res1_addr >> 32) & 0x3ff);      plt[8 + 4] = 0xa2146000 | (res1_addr & 0x3ff);      plt[8 + 5] = 0xa12c3020;      plt[8 + 6] = 0xadc40011;      plt[8 + 7] = 0x9330700c;      /* Now put the magic cookie at the beginning of .PLT3	 Entry .PLT4 is unused by this implementation.  */      *((struct link_map **)(&plt[16 + 0])) = l;    }  return lazy;}