aboutsummaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorMarius Strobl <marius@FreeBSD.org>2011-03-06 15:20:11 +0000
committerMarius Strobl <marius@FreeBSD.org>2011-03-06 15:20:11 +0000
commit25b31a949680f1f6ad0965a8f514815e7c9ff7fb (patch)
tree5ae03a572be72e3fd0d851acb0f567c8119d6b93 /libexec
parentd374d11285a46eb5d9d7666da4a89d12be630d37 (diff)
Notes
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rtld-elf/sparc64/reloc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libexec/rtld-elf/sparc64/reloc.c b/libexec/rtld-elf/sparc64/reloc.c
index 6249fb0ce649..b58e3e5fb8ff 100644
--- a/libexec/rtld-elf/sparc64/reloc.c
+++ b/libexec/rtld-elf/sparc64/reloc.c
@@ -355,6 +355,9 @@ reloc_nonplt_object(Obj_Entry *obj, const Elf_Rela *rela, SymCache *cache,
if (type == R_SPARC_OLO10)
value = (value & 0x3ff) + ELF64_R_TYPE_DATA(rela->r_info);
+ if (type == R_SPARC_HIX22)
+ value ^= 0xffffffffffffffff;
+
if (RELOC_PC_RELATIVE(type))
value -= (Elf_Addr)where;