rtld-elf: Fix powerpc64 TLS handling, matching powerpc's fix
We need to subtract the TLS_TCB_SIZE to get to the real data pointer, since r13 points to the end of the TCB structure. Prior to this, devel/protobuf-c port broke with recent update to devel/protobuf, which exposed this issue. Submitted by: andreast Reported by: Piotr Kubaj MFC after: 1 week
This commit is contained in:
parent
7263d0bea2
commit
d6cbcdd4c0
@ -256,7 +256,7 @@ reloc_nonplt_object(Obj_Entry *obj_rtld __unused, Obj_Entry *obj,
|
||||
|
||||
*(Elf_Addr **)where = *where * sizeof(Elf_Addr)
|
||||
+ (Elf_Addr *)(def->st_value + rela->r_addend
|
||||
+ defobj->tlsoffset - TLS_TP_OFFSET);
|
||||
+ defobj->tlsoffset - TLS_TP_OFFSET - TLS_TCB_SIZE);
|
||||
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user