提交 94cf991b 编写于 作者: R Rich Felker

fix powerpc dynamic linker thread-pointer-relative relocations

processing of R_PPC_TPREL32 was ignoring the addend provided by the
RELA-style relocation and instead using the inline value as the
addend. this presumably broke dynamic-linked access to initial TLS in
cases where the addend was nonzero.
上级 f4cc2760
......@@ -32,9 +32,9 @@ static inline int do_single_reloc(
*reloc_addr = def.sym->st_value + addend;
break;
case R_PPC_TPREL32:
*reloc_addr += def.sym
? def.sym->st_value + def.dso->tls_offset - 0x7000
: self->tls_offset - 0x7000;
*reloc_addr = (def.sym
? def.sym->st_value + def.dso->tls_offset
: self->tls_offset) - 0x7000 + addend;
break;
}
return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册