[POWERPC] Add support for R_PPC_ADDR16_HI relocations
apply_relocate_add() does not support R_PPC_ADDR16_HI relocations, which prevents some non gcc-built modules to be loaded. Signed-off-by: Simon Vallet <svallet@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
06c3147564
commit
9a3d6458e9
1 changed files with 6 additions and 1 deletions
|
@ -224,7 +224,12 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
|
|||
/* Low half of the symbol */
|
||||
*(uint16_t *)location = value;
|
||||
break;
|
||||
|
||||
|
||||
case R_PPC_ADDR16_HI:
|
||||
/* Higher half of the symbol */
|
||||
*(uint16_t *)location = (value >> 16);
|
||||
break;
|
||||
|
||||
case R_PPC_ADDR16_HA:
|
||||
/* Sign-adjusted lower 16 bits: PPC ELF ABI says:
|
||||
(((x >> 16) + ((x & 0x8000) ? 1 : 0))) & 0xFFFF.
|
||||
|
|
Loading…
Reference in a new issue