This commit adds support for 32 bit absolute and pc relative relocations in ELF/i386 objects, along with simple unit tests.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Thanks for working on this! Apart from the naming detail, the changes in ELFLinkGraphBuilder.h are looking good to me.
llvm/lib/ExecutionEngine/JITLink/ELFLinkGraphBuilder.h | ||
---|---|---|
517 | Nit: We should keep typename Function here as well as for forEachRelRelocation() |
llvm/lib/ExecutionEngine/JITLink/ELFLinkGraphBuilder.h | ||
---|---|---|
517 | I can change it back to "RelocHandlerFunction". I purposely changed it to "RelocHandlerMethod" because "Func" argument was a member function (which at least in Rust are just referred to as methods. Perhaps they're not called the same thing in C++). Is there a reason why you named the template parameter "RelocHandlerFunction"? |
llvm/lib/ExecutionEngine/JITLink/ELFLinkGraphBuilder.h | ||
---|---|---|
517 | Yes, they are not the same thing. Methods can be subject to dynamic dispatch. Just to clarify, there are two overloads and the typenames are chosen on purpose: The one we talk about here is (1) and I think it should remain unchanged. forEachRelRelocation() should follow this pattern. |
Nit: We should keep typename Function here as well as for forEachRelRelocation()