Lines 413-418
elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
Link Here
|
413 |
break; |
413 |
break; |
414 |
case R_ARM_ABS32: |
414 |
case R_ARM_ABS32: |
415 |
{ |
415 |
{ |
|
|
416 |
Elf32_Addr reloc_value; |
416 |
# ifndef RTLD_BOOTSTRAP |
417 |
# ifndef RTLD_BOOTSTRAP |
417 |
/* This is defined in rtld.c, but nowhere in the static |
418 |
/* This is defined in rtld.c, but nowhere in the static |
418 |
libc.a; make the reference weak so static programs can |
419 |
libc.a; make the reference weak so static programs can |
Lines 431-437
elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
Link Here
|
431 |
used while loading those libraries. */ |
432 |
used while loading those libraries. */ |
432 |
value -= map->l_addr + refsym->st_value; |
433 |
value -= map->l_addr + refsym->st_value; |
433 |
# endif |
434 |
# endif |
434 |
*reloc_addr += value; |
435 |
/* Support relocations on mis-aligned offsets. */ |
|
|
436 |
memcpy (&reloc_value, reloc_addr_arg, sizeof (reloc_value)); |
437 |
reloc_value += value; |
438 |
memcpy (reloc_addr_arg, &reloc_value, sizeof (reloc_value)); |
435 |
break; |
439 |
break; |
436 |
} |
440 |
} |
437 |
case R_ARM_TLS_DESC: |
441 |
case R_ARM_TLS_DESC: |