[PATCH] D30699: [ELF] - Stop producing broken output for R_386_GOT32X relocation.

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 23 10:45:55 PDT 2017


grimar added a comment.

In https://reviews.llvm.org/D30699#708994, @ruiu wrote:

> When you compute G+A instead of G+A-GOT for an R_386_GOT32X, you always need to rewrite instructions as well.


Why ? Optimization in not applicable for some situations, for example for IFUNC.
If I have movl ifunc at GOT, %eax code, there is no base register and formula should be G+A. 
No instructions will be overwrited here. 
Otherwize result of (G+A-GOT) would be an offset against nothing (since there is no base register). That is what fixed in patch.


https://reviews.llvm.org/D30699





More information about the llvm-commits mailing list