[PATCH] D23565: [ELF] Linkerscript: fix relocation offsets

Sean Silva via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 17 18:28:40 PDT 2016


silvas added a comment.

In https://reviews.llvm.org/D23565#518608, @ruiu wrote:

> Eugene,
>
> Thank you for your description. I agree that the order we compute offset is the cause of the problem. In scanRelocs, we compute a symbol offset for each symbol and assign it to a local variable `Offset` -- but that value may change if linker scripts are in use. That value is computed too early, and we want to do it lazily.
>
> As to this patch, I'd refactor instead of applying a quick fix. It doesn't seem hard to do. For `C.Relocations` in `scanRelocs`, we are able to not store `Offset` to them because it can be computed from `Body`.


This makes sense, but it may have performance implications to get the offset later (at least more pointer chasing for data that we already had in cache in scanRelocs); it will need to be measured to make sure that we implement it without costing too much performance.


https://reviews.llvm.org/D23565





More information about the llvm-commits mailing list