This patch does the following:
- Implements R_AARCH64_ADR_GOT_PAGE and R_AARCH64_LD64_GOT_LO12_NC relocations
- Fills Global Offset Table with absolute address of target symbol.
Paths
| Differential D28571
RuntimeDyldELF/AArch64: Implement basic support for PIC relocations ClosedPublic Authored by evgeny777 on Jan 11 2017, 10:21 AM.
Details Summary This patch does the following:
Diff Detail
Event TimelineComment Actions Hello Evgeny, Just looking at this from a AArch64 perspective. If my understanding is correct it looks like there is at least one case that this would incorrectly resolve the LO12_NC relocation. I've put an example in the comment. I'm not familiar with RuntimeDyld so my comments may not be applicable to the use cases it would be expected to face, I think you'll need to get some comments from the RuntimeDyld code owners for that. I notice the title says basic support, if it is intentionally incomplete it will be worth putting a comment on what hasn't been done yet. The remainder of the patch looks like it is just moving things around so that all looks fine to me. Peter
Comment Actions
I'm using it for run time linking and execution of arbitrary object files, so like you're saying this might be a problem in some cases Comment Actions Addressed review comments from Peter:
Comment Actions I think that those changes address my previous comments, thanks for the update. I've found a couple of what look like typos in the comments. I'm not familiar with rtdyld's organizational and coding conventions so probably best that let an owner take it from here.
Comment Actions Thanks for looking at it. I'll wait a few days in case someone jumps in.
This revision is now accepted and ready to land.Feb 3 2017, 1:42 PM Closed by commit rL294191: RuntimeDyldELF/AArch64: Implement basic GOT support (authored by evgeny777). · Explain WhyFeb 6 2017, 7:42 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 87230 llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h
llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
llvm/trunk/test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_PIC_relocations.s
|